我能够ping我尝试连接成功的远程服务器。但是,在运行MySQL命令时:
mysql -u monty -h website.com -p
我收到以下错误:
ERROR 2003 (HY000): Can't connect to MySQL server on 'website.com' (111)
我按照发现的here说明了如何创建具有必要权限的用户:
mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> WITH GRANT OPTION;
我还在/etc/mysql/my.cnf
中注释了以下行# bind-address = 127.0.0.1
即便如此,我仍然无法远程连接。这里有什么我想念的吗?再次感谢所有人。
答案 0 :(得分:3)
这不是许可问题。如果是权限问题,则会出现其他错误。
这是一个连接问题。
确保行skip-networking
行已注释掉或从配置文件中删除。
确保将port
行配置为正确的端口(默认为3306)。
如果您仍无法连接,则很可能是防火墙/ ISP问题。
Ping并不是一个好的测试,因为它只测试ICMP服务器是否启动。使用telnet连接到特定端口将是一个更好的测试:
> telnet website.com 3306
您可以在许多地方放置my.cnf
文件,因此请搜索该文件以确保其他文件无效。
这与sarnold的答案相结合可以让你走上正轨。
答案 1 :(得分:2)
错误111
为Connection refused
:
$ perror 111
111: Connection refused
这种情况有几种常见的方式:
REJECT
这些数据包。 TCP数据包的处理方式与ICMP数据包不同,因此能够ping
并不一定意味着能够路由任何随机TCP流。请系统管理员检查ufw
或iptables
是否有防火墙数据。/var/log/audit/audit.log
,dmesg(1)
,reject
等的denied
和AVC
输出。bind-address
配置。尝试在配置文件中添加明确的bind-address=0.0.0.0
(Google缓存链接;我无法联系dev.mysql.com
)以强制绑定到所有地址。检查netstat -anp | grep -i mysql
以查看它正在侦听的端口(如果有)。