Nic*_*uiz 32 mysql linux remote-access mysql-error-2003
此问题与以下问题有关:
我正在本地计算机上配置一个新的MySQL(5.1)服务器.我需要提供对数据库的远程访问.我做了以下步骤:
bind-address
在my.cnf中评论:
# bind-address = 192.168.1.3
Run Code Online (Sandbox Code Playgroud)授予权限:
GRANT ALL PRIVILEGES ON *.* TO 'nickruiz'@'%' IDENTIFIED BY PASSWORD 'xxxx';
Run Code Online (Sandbox Code Playgroud)为防火墙配置iptables
sudo iptables -I INPUT -p udp --dport 3306 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 3306 --syn -j ACCEPT
sudo iptables-save
Run Code Online (Sandbox Code Playgroud)重启mysql服务器 sudo /etc/init.d/mysql restart
测试时,我得到以下内容:
LAN:
mysql -h 192.168.1.3 -u nickruiz -p
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 95
Server version: 5.1.63-0ubuntu0.11.04.1 (Ubuntu)
Run Code Online (Sandbox Code Playgroud)
远程:
mysql -h 1xx.xx.4.136 -u nickruiz -p
ERROR 2003 (HY000): Can't connect to MySQL server on '1xx.xx.4.136' (111)
Run Code Online (Sandbox Code Playgroud)
显然有一些错误导致我无法使用我的全球IP地址.
笔记:
有任何想法吗?
更新:telnet似乎不起作用.
telnet 192.168.1.3 3306
Trying 192.168.1.3...
Connected to 192.168.1.3.
Escape character is '^]'.
E
5.1.63-0ubuntu0.11.04.1,0g8!:@pX;]DyY0#\)SIConnection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)
Toi*_*Lee 14
请检查您的收听端口:
netstat -nat |grep :3306
Run Code Online (Sandbox Code Playgroud)
如果它显示
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
Run Code Online (Sandbox Code Playgroud)
多数民众赞成你的远程连接.
但在这种情况下,我认为你有
tcp 0 192.168.1.3:3306 0.0.0.0:* LISTEN
Run Code Online (Sandbox Code Playgroud)
多数民众赞成你的远程连接.您还应该检查防火墙(iptables如果你是centos/redhat)
services iptables stop
Run Code Online (Sandbox Code Playgroud)
用于测试或使用:
iptables -A input -p tcp -i eth0 --dport 3306 -m state NEW,ESTABLISHED -j ACCEPT
iptables -A output -p tcp -i eth0 --sport 3306 -m state NEW,ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
另外还要检查远程连接的授予权限:
GRANT ALL ON *.* TO remoteUser@'remoteIpadress' IDENTIFIED BY 'my_password';
Run Code Online (Sandbox Code Playgroud)
检查您的远程主机(即您尝试连接的 Web 托管服务器)是否允许端口 3306 上的传出流量。
我在这种情况下看到了 (100) 错误。我可以从我的 PC/Mac 进行连接,但不能从我的网站进行连接。MySQL 实例可通过互联网访问,但我的托管公司不允许我的网站通过端口 3306 连接到数据库。
一旦我要求我的托管公司打开我的网络托管帐户以允许端口 3306 上的传出流量,我的网站就可以连接到我的远程数据库。
归档时间: |
|
查看次数: |
141352 次 |
最近记录: |