我已经在远程 Ubuntu 机器上安装了 MySQL 服务器。root
用户在表中以这种mysql.user
方式定义:
mysql> SELECT host, user, password FROM user WHERE user = 'root';
+------------------+------+-------------------------------------------+
| host | user | password |
+------------------+------+-------------------------------------------+
| localhost | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ip-10-48-110-188 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| 127.0.0.1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ::1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
我可以root
使用标准客户端从同一个远程计算机命令行界面与用户一起访问mysql
。现在我想允许从 Internet 上的每个主机进行 root 访问,所以我尝试添加以下行(它与先前转储中的第一行完全相同,host
列除外):
mysql> SELECT host, user, password FROM user WHERE host = '%';
+------------------+------+-------------------------------------------+
| host | user | password |
+------------------+------+-------------------------------------------+
| % | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
但是我个人 PC 上的客户端继续告诉我(我隐藏了服务器 IP):
SQL 错误 (2003): 无法连接到“46.xxx”上的 MySQL 服务器 (10061)
我不知道这是身份验证错误还是网络错误。在服务器防火墙上,我为0.0.0.0/0启用了端口3306/TCP,这对我来说没问题...