我在Debian服务器上运行了一个MySQL实例,我可以在本地连接到它,没有任何问题。但是,我无法远程连接到它。当我从命令行尝试此操作时,出现以下错误:
ERROR 2003 (HY000): Can't connect to MySQL server on '<server-ip>' (110)
我已将用户添加到mysql中,作为'user'@'*'和'user'@'localhost'。此服务器中的skip-networking设置为false,并在my.cnf中注释掉绑定地址。我还尝试使用以下命令在iptables中打开端口3306:
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
以下是我使用iptables -L检索的所有iptable防火墙规则的列表:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
REJECT tcp -- anywhere anywhere tcp dpt:auth reject-with icmp-port-unreachable
ACCEPT icmp -- anywhere anywhere icmp type 8 code 0 state NEW,RELATED,ESTABLISHED,UNTRACKED
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:ftp state NEW
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:ssh state NEW
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:www state NEW
ACCEPT tcp -- <my-server> anywhere tcp spts:1024:65535 dpt:mysql state NEW
ACCEPT tcp -- anywhere anywhere tcp dpts:49152:65534 state NEW
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
LOG all -- anywhere anywhere limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: '
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
LOG tcp -- anywhere anywhere tcp dpt:mysql LOG level debug
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
有谁知道我应该从哪里开始?
答案 0 :(得分:12)
根据您的回复,您需要查找您和服务器之间是否存在阻止连接的设备。您还应该确保在登录服务器时可以在该服务器的以太网地址上telnet到3306 ...如果没有,您可能没有将服务绑定到my.cnf
中的以太网...请参阅bind-address
参数。
答案 1 :(得分:1)
您应检查MySQL服务器配置以查看它是否绑定到127.0.0.1,然后如果您的应用程序位于同一服务器上,则只能连接到mysql。 安装webamin有一个简单的方法,你可以通过网络界面进行控制。
答案 2 :(得分:1)
这可能是由于3306端口关闭,请检查您的服务器端口状态
http://www.yougetsignal.com/tools/open-ports/
如果显示已关闭,则表示您无法从机器外部访问它,以打开端口
ufw - 简单的防火墙
Ubuntu的默认防火墙配置工具是ufw。 以下是如何使用ufw的一些示例:
首先,需要启用ufw。在终端提示符下输入:
sudo ufw enable
打开端口(mysql):
sudo ufw allow 3306
要查看防火墙状态,请输入:
sudo ufw status
答案 3 :(得分:0)
如果你使用VPN连接来连接远程数据库服务器而你遇到了这种错误,那么只需检查两个简单的步骤......
1)在Windows机器中,请转到&#34;控制面板\网络和Internet \网络连接&#34;路径并右键单击局域网并转到属性。单击TCP / IPv4并转到属性。确保IP和DNS服务器(如果您使用DHCP?)。
2)之后请重新启动机器并再次检查。
希望这会奏效。就我而言,它有效。
注意:请确保您的所有设置都正确无误。这个答案很有趣,但它适用于我的情况:)
谢谢!
答案 4 :(得分:0)
对我来说,这是通过取消注释下面给定的行来启用/etc/default/iptables
文件中的端口3306以允许来自任何主机的传入流量:
#-A INPUT -p tcp --dport 3306 -j ACCEPT