2

我能够 ping 我尝试成功连接的远程服务器。但是,在运行 MySQL 命令时:

mysql -u monty -h website.com -p

我收到以下错误:

ERROR 2003 (HY000): Can't connect to MySQL server on 'website.com' (111)

我已按照此处找到的说明进行操作,这些说明显示了如何创建具有必要权限的用户:

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

即便如此,我仍然无法远程连接。我在这里缺少什么吗?再次感谢大家。

4

2 回答 2

4

这不是权限问题。如果是权限问题,你会得到一个不同的错误。

这是一个连接问题。

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

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

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

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

> telnet website.com 3306

有很多地方可以放置my.cnf文件,因此请搜索该文件以确保另一个文件无效。

这与萨诺德的回答相结合应该让你走上正轨。

于 2012-02-28T22:58:59.507 回答
2

错误111Connection refused

$ perror 111
111: Connection refused

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

  • 服务器系统、客户端系统或中间的路由器被配置为管理REJECT这些数据包。TCP 数据包的处理方式与 ICMP 数据包不同,因此能够处理ping并不一定意味着能够路由任何随机 TCP 流。要求系统管理员检查ufw或检查iptables防火墙数据。
  • 服务器系统正在运行一个 强制访问控制工具,例如 AppArmorSELinuxTOMOYOSMACK,这些工具被配置为禁止数据包。这些系统在报告错误的方式上有所不同,但会检查/var/log/audit/audit.logdmesg(1)输出rejectdeniedAVC等。
  • 您可能只删除了一项bind-address配置。尝试在配置文件中添加显式bind-address=0.0.0.0(Google 缓存链接;由于某种原因我无法联系dev.mysql.com)以强制绑定到所有地址。检查netstat -anp | grep -i mysql它正在侦听的端口(如果有)。
于 2012-02-28T22:58:51.520 回答