最佳答案
我已经在一台远程 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 |
+------------------+------+-------------------------------------------+
我可以使用标准的 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”(10061)上的 MySQL 服务器
我不知道是认证错误还是网络错误。在服务器防火墙上,我为 0.0.0.0.0启用了端口 3306/TCP,这对我来说没问题..。