错误2003(HY000):无法连接到MySQL服务器(111)

此问题与以下问题有关:

  • Can'无法连接到MySQL服务器错误111
  • 尝试连接到远程MySQL主机(错误2003)

我正在本地机器上配置一个新的MySQL(5.1)服务器。我需要提供对数据库的远程访问。我执行了以下步骤:

  1. my.cnf中的注释绑定地址

    #绑定地址=192.168.1.3
    
  2. 授予特权:

    将**上的所有权限授予由密码“xxxx”标识的“%”nickruiz“@”;
    
  3. 在路由器上设置端口转发(TCP和UDP,端口3306,192.168.1.3)
  4. 为防火墙配置iptables

    sudo iptables-I输入-p udp-dport 3306-j接受
    sudo iptables-I输入-p tcp--dport 3306--syn-j接受
    sudo iptables保存
    
  5. 重新启动mysql服务器sudo/etc/init.d/mysql Restart

测试时,我得到以下信息:

局域网:

mysql-h192.168.1.3-u nickruiz-p
欢迎使用MySQL监视器。命令以结束;或\g。
您的MySQL连接id是95
服务器版本:5.1.63-0ubuntu0.11.04.1(Ubuntu)

远程:

mysql-h1xx.xx.4.136-u nickruiz-p
错误2003(HY000):无法连接到'1xx.xx.4.136'上的MySQL服务器(111)

很明显,有什么问题阻止了我使用我的全局IP地址

注:

  • 我尝试在同一台机器上测试远程连接,并且
    从远程机器通过SSH

  • 我不确定我的ISP是否给了我一个静态IP

有什么想法吗

更新:
telnet似乎不起作用

telnet 192.168.1.3 3306
正在尝试192.168.1.3。。。
已连接到192.168.1.3。
转义字符为“^]”。
E
5.1.63-0ubuntu0.11.04.1,0g8!:@pX;]DY0 \ \)s连接已被外部主机关闭。

请通过以下方式检查您的侦听端口:

netstat-nat | grep:3306

如果它显示

tcp 0.0.0.0:3306 0.0.0.0:*听

这对于您的远程连接来说是正常的

但在这种情况下,我想你有

tcp 0 192.168.1.3:3306 0.0.0.0:*听

这对于您的远程连接来说是正常的。
您还应该检查防火墙(如果您使用centos/redhat,则使用iptables)

服务iptables停止

用于测试或使用:

iptables-A输入-p tcp-i eth0-dport 3306-m状态新建,已建立-j接受
iptables-A输出-p tcp-i eth0-sport 3306-m状态新建,已建立-j接受

还有一件事要检查您对远程连接的授予权限:

将**上的所有内容授予由“我的密码”标识的[email protected]“RemoteiPAddress”;

发表评论