我在远程Ubuntu机器上安装了MySQL服务器。在mysql.user
表中,root
用户是这样定义的:
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 |
+------------------+------+-------------------------------------------+
我可以使用标准的mysql
客户端从同一远程机器命令行界面使用用户root
进行访问。现在我想要允许来自互联网上每个主机的root访问,因此我尝试添加以下行(这是以前转储的第一行的精确副本,除了host
列):
mysql> SELECT host, user, password FROM user WHERE host = '%';
+------------------+------+-------------------------------------------+
| host | user | password |
+------------------+------+-------------------------------------------+
| % | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
但是我的个人电脑上的客户端一直告诉我(我遮盖了服务器IP):
SQL错误(2003):无法连接到'46.x.x.x'上的MySQL服务器(10061)
我不知道这是身份验证错误还是网络错误。在服务器防火墙上,我为0.0.0.0/0启用了端口3306/TCP,对我来说没问题......