首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未能连接远程mysql服务器

未能连接远程mysql服务器
EN

Stack Overflow用户
提问于 2014-08-06 08:51:26
回答 3查看 6.4K关注 0票数 5

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

我可以成功地完成远程主机的ssh操作,端口3306正在监听:

代码语言:javascript
复制
[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:

代码语言:javascript
复制
[root@fabulous ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]

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

代码语言:javascript
复制
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的全局配置:

代码语言:javascript
复制
[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服务器时,错误消息是:

代码语言:javascript
复制
2003 - Can't connect to MySql server on 'XX.XX.XX.XX' (10038)

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

代码语言:javascript
复制
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

有人知道吗?或者让我知道如何找到有用的日志?提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-06 09:51:10

我觉得你的Navicat或者窗户都不好。

在我的本地人,

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2014-08-06 11:44:44

它看起来像是3306端口被防火墙或其他网络设备阻塞了,这是你和你的CentOS服务器之间的事情。

我建议您通过SSH连接连接到MySQL服务器,以便以本地主机用户的身份连接到服务器。使用SSH应该允许您从您的办公室连接,同时也提供加密连接和保护,防止潜在的中间人攻击。我从未使用过Navicat,但是连接设置MySQL工作台使使用SSH进行连接变得很容易。

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

另外,您还可以启用SSL安全地连接到服务器,但是创建、签名和向服务器和所有客户端分发私钥和公共证书的过程使得实现起来更加困难。此外,通过SSL进行连接使用相同的TCP端口(3306),这无助于阻塞到该端口的通信。

票数 2
EN

Stack Overflow用户

发布于 2014-09-16 08:27:57

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25156018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档