当我尝试使用命令行mysql -h <remote-ip> -u any_existing_users -p或任何其他mysql客户端(例如phpmyadmin)连接远程MySQL服务器时,它不起作用,并且错误提示为
mysql -h <remote-ip> -u any_existing_users -p
ERROR 2003 (HY000) Can't connect to MySQL server on '<remote-ip>' (61)
但是,当我尝试ssh <remote-ip>通过本地连接MySQL时mysql -u root -p,没有问题。
ssh <remote-ip>
mysql -u root -p
这是用户表(SELECT User, Host FROM mysql.user;)的一部分:
SELECT User, Host FROM mysql.user;
+------------------+----------------+ | User | Host | +------------------+----------------+ | root | % | | other_users | <remote-ip> | | root | localhost | +------------------+----------------+
这是iptable:
Chain INPUT (policy ACCEPT) num target prot opt source destination 1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) num target prot opt source destination Chain RH-Firewall-1-INPUT (2 references) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0 5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631 7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631 8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 10 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 11 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306
所以有什么问题?
检查您的mysql服务器是否正在使用netstat监听套接字:
netstat -tulpen
并搜索3306。
如果不是,或者仅在本地主机上,请检查my.cnf并搜索该bind-address行并将其更改为:
bind-address
bind-address = 0.0.0.0
然后重新启动服务器,然后重试。