此问题与以下问题有关:
- Can';无法连接到MySQL服务器错误111
- 尝试连接到远程MySQL主机(错误2003)
我正在本地机器上配置一个新的MySQL(5.1)服务器。我需要提供对数据库的远程访问。我执行了以下步骤:
-
my.cnf中的注释
绑定地址
:#绑定地址=192.168.1.3
-
授予特权:
将**上的所有权限授予由密码“xxxx”标识的“%”nickruiz“@”;
- 在路由器上设置端口转发(TCP和UDP,端口3306,192.168.1.3)
-
为防火墙配置iptables
sudo iptables-I输入-p udp-dport 3306-j接受 sudo iptables-I输入-p tcp--dport 3306--syn-j接受 sudo iptables保存
-
重新启动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”;