我知道这命令:
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';
但它只允许我授予一个特定的IP地址来访问远程MySQL数据库。如果我想让任何远程主机都能访问这个MySQL数据库呢?我怎么做呢?基本上,我将这个数据库公开,这样每个人都可以访问它。
我知道这命令:
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';
但它只允许我授予一个特定的IP地址来访问远程MySQL数据库。如果我想让任何远程主机都能访问这个MySQL数据库呢?我怎么做呢?基本上,我将这个数据库公开,这样每个人都可以访问它。
当前回答
使用该命令:
GRANT ALL ON yourdatabasename.* TO root@'%' IDENTIFIED BY 'yourRootPassword';
然后:
FLUSH PRIVILEGES;
然后注释掉文件"/etc/mysql/mysql.conf.d/mysql .cnf"(这是必须的!)
bind-address = 127.0.0.1
对我有用!
其他回答
TO 'user'@'%'
%是通配符-您也可以使用'%.domain。例如'或'%.123.123.123'之类的东西。
您可以通过编辑/etc/my.cnf来禁用所有安全:
skip-grant-tables
远程访问Mysql server 8数据库。
CREATE USER 'root'@'%' IDENTIFIED BY 'Pswword@123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
比如我的CentOS
sudo gedit /etc/mysql/my.cnf
注释掉下面的行
#bind-address = 127.0.0.1
然后
Sudo服务mysqld重启
执行如下命令:
$ mysql -u root -p
mysql> GRANT ALL ON *.* to root@'ipaddress' IDENTIFIED BY 'mysql root password';
mysql> FLUSH PRIVILEGES;
mysql> exit
然后尝试从您指定的IP地址进行连接:
mysql -h address-of-remove-server -u root -p
你应该能够连接。