我知道这命令:

GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';

但它只允许我授予一个特定的IP地址来访问远程MySQL数据库。如果我想让任何远程主机都能访问这个MySQL数据库呢?我怎么做呢?基本上,我将这个数据库公开,这样每个人都可以访问它。


当前回答

比如我的CentOS

sudo gedit /etc/mysql/my.cnf

注释掉下面的行

#bind-address = 127.0.0.1

然后

Sudo服务mysqld重启

其他回答

只要创建一个用户到某个数据库

授予<database_name>的所有权限。* TO '<用户名>'@'%' IDENTIFIED BY '<密码>'

然后转到

执行nano /etc/mysql/mysql.conf.d/mysqld.cnf,将bind-address = 127.0.0.1修改为bind-address = 0.0.0.0

之后,您可以从任何IP连接到该数据库。

TO 'user'@'%'

%是通配符-您也可以使用'%.domain。例如'或'%.123.123.123'之类的东西。

使用该命令:

GRANT ALL ON yourdatabasename.* TO root@'%' IDENTIFIED BY 'yourRootPassword';

然后:

FLUSH PRIVILEGES; 

然后注释掉文件"/etc/mysql/mysql.conf.d/mysql .cnf"(这是必须的!)

bind-address = 127.0.0.1 

对我有用!

您可以通过以下命令解决MariaDB的问题:

注意:

GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'mysql root password';

%是通配符。在本例中,它指所有IP地址。

如果您希望从任何IP地址授予数据库的远程访问权限,请运行mysql命令,然后运行以下命令。

GRANT ALL PRIVILEGES ON *.*
TO 'root'@'%' 
IDENTIFIED BY 'password' 
WITH GRANT OPTION;