无法连接远程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
任何人都可以知道它或让我知道如何找到有用的日志? 提前谢谢。
答案 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之前添加#