无法连接远程mysql服务器

时间:2014-08-06 08:51:27

标签: mysql linux ssh centos iptables

无法连接远程mysql服务器(CentOS),我尝试了很多方法但没有帮助。

我可以成功ssh远程主机,端口3306正在监听:

[root@fabulous ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      9979/mysqld

我关闭了iptables:

[root@fabulous ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]

远程服务器上的Mysql客户端工作正常,允许在每个主机上访问:

mysql> select user,host from user;
+-------+--------------------+
| user  | host               |
+-------+--------------------+
| root  | %                  |
| root  | 127.0.0.1          |
| root  | fabulous.ma2oo.com |
| root  | localhost          |
+-------+--------------------+
4 rows in set (0.00 sec)

mysql的全局配置:

[root@fabulous ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
default-character-set=utf8

但是,当我在Windows笔记本电脑上使用Navicat访问mysql服务器时,错误信息为:

2003 - Can't connect to MySql server on 'XX.XX.XX.XX' (10038)

当我使用telnet访问该服务器上的相应端口时,错误消息为:

C:\Users\shijunji>telnet 107.170.239.240 3306
Connecting To 107.170.239.240...Could not open connection to the host, on port 3306: Connect failed

任何人都可以知道它或让我知道如何找到有用的日志? 提前谢谢。

3 个答案:

答案 0 :(得分:2)

看起来端口3306被防火墙或其他网络阻止 您与CentOS服务器之间的设备。

我建议您通过SSH连接连接MySQL服务器 您作为localhost用户连接到服务器。使用SSH应该允许 您可以从办公室连接,同时提供加密连接和 防止潜在的中间人攻击。我从未使用过Navicat 但MySQL Workbench的连接设置使得使用SSH轻松连接。

为了安全起见,您还应该在服务器上重新启用 iptables 并阻止外部网络访问端口3306,以便只有localhost用户 (包括使用SSH隧道的那些)可以连接。

另外,您还可以启用SSL以安全地连接到服务器,但是 创建,签署和分发私钥和公共的物流 证书到服务器和所有客户端使其更难实现。也, 通过SSL连接使用相同的TCP端口(3306),这对案件没有帮助 该端口的流量被阻止的地方。

答案 1 :(得分:1)

我认为您的Navicat或您的Windows操作系统不正常。

在我的localhost中,

songguo@songuo:~$ telnet 107.170.239.240 3306
Trying 107.170.239.240...
Connected to 107.170.239.240.
Escape character is '^]'.
4
5.1.73
^^=Vxyw1P"Ue}ffL+.G
Connection closed by foreign host.
songguo@songuo:~$ mysql -uroot -h107.170.239.240 -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'211.151.238.51' (using      password: YES)

所以,如果我有正确的密码,我可以连接到mysql服务器。

答案 2 :(得分:0)

检查/etc/mysql/my.cnf文件,并在bind-address = 127.0.0.1之前添加#