使用远程连接CentOS服务器 MySQL 服务,发现无法连接

 使用远程连接CentOS服务器 MySQL 服务,发现无法连接 OperationalError: (2003, “Can’t connect to MySQL server on <remote_ip>)

问题说明

使用远程连接CentOS服务器 MySQL 服务,发现无法连接,报错信息如下:

1
OperationalError: (2003, "Can't connect to MySQL server on <remote_ip>)

排查分析

  1. 在远程数据库中查看该用户是否有远程登录的权限
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT User, Host FROM mysql.user;

+----------+--------------------+
| User | Host |
+----------+--------------------+
| zhangsan | % |
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| guest | localhost |
| root | localhost |
| root | vm\_29\_10\_centos |
+----------+--------------------+

host% 的账户 zhangsan 表示可以远程访问。

  1. 查看远程 MySQL Server 是不是监听了 3306 端口
1
2
3
4
5
6

netstat -tulpen

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 27 50978 6137/mysqld

如果没有监听 3306 端口或者只监听了 localhost0.0.0.0表示监听所有),则在 my.cnf 添加

1
2
3
4
5
6
7
8

3. 如果是CentOS7需要将 MySQL 服务加入防火墙

```shell

sudo firewall-cmd --zone=public --permanent --add-service=mysql
success
sudo systemctl restart firewalld

问题看起来是安装过程中,使用了 Clang 库,没找到my_config头文件。

解决方案

根据上面的步骤排查后,我发现是因为我的CentOS7开发机没有将 MySQL 服务加入防火墙,
于是按照第三步进行操作后,就可以愉快的访问啦~