能够Ping远程服务器,但无法连接

时间:2012-02-28 22:37:33

标签: mysql database database-connection remote-server

我能够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

即便如此,我仍然无法远程连接。这里有什么我想念的吗?再次感谢所有人。

2 个答案:

答案 0 :(得分:3)

这不是许可问题。如果是权限问题,则会出现其他错误。

这是一个连接问题。

确保行skip-networking行已注释掉或从配置文件中删除。

确保将port行配置为正确的端口(默认为3306)。

如果您仍无法连接,则很可能是防火墙/ ISP问题。

Ping并不是一个好的测试,因为它只测试ICMP服务器是否启动。使用telnet连接到特定端口将是一个更好的测试:

> telnet website.com 3306

您可以在许多地方放置my.cnf文件,因此请搜索该文件以确保其他文件无效。

这与sarnold的答案相结合可以让你走上正轨。

答案 1 :(得分:2)

错误111Connection refused

$ perror 111
111: Connection refused

这种情况有几种常见的方式:

  • 服务器系统,客户端系统或中间的路由器配置为管理REJECT这些数据包。 TCP数据包的处理方式与ICMP数据包不同,因此能够ping并不一定意味着能够路由任何随机TCP流。请系统管理员检查ufwiptables是否有防火墙数据。
  • 服务器系统正在运行mandatory access control工具,例如AppArmorSELinuxTOMOYOSMACK,配置为禁止数据包。这些系统在报告错误的方式上有所不同,但请检查/var/log/audit/audit.logdmesg(1)reject等的deniedAVC输出。
  • 您可能只删除了一个bind-address配置。尝试在配置文件中添加明确的bind-address=0.0.0.0(Google缓存链接;我无法联系dev.mysql.com)以强制绑定到所有地址。检查netstat -anp | grep -i mysql以查看它正在侦听的端口(如果有)。