共计 1099 个字符,预计需要花费 3 分钟才能阅读完成。
Mac Navicat 链接时报错 Can’t connect to MySQL server on‘xx.xx.xx.xx’(61)
Win 版 Navicat 报错 Can’t connect to MySQL server on‘xx.xx.xx.xx’(10038)
1、查看该用户是否有远程登录的权限
mysql> SELECT * FROM mysql.user;
+-----------+-----------+
| User | Host |
+-----------+-----------+
| M | % |
| mysql.sys | localhost |
| root | localhost |
| tommy | % |
| showhilllee | % |
+-----------+-----------+
5 rows in set (0.00 sec)
- 很显然,M 是允许从其它服务器登陆的。
2、查看 MySQL Server 是不是监听了 3306 端口
执行命令netstat -tulpen
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:22 0.0.0.0:* LISTEN 0 16801 1507/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 0 17222 1970/master
tcp6 0 0 :::3306 :::* LISTEN 27 46396 22054/mysqld
tcp6 0 0 :::22 :::* LISTEN 0 16803 1507/sshd
tcp6 0 0 ::1:25 :::* LISTEN 0 17223 1970/master
udp 0 0 0.0.0.0:68 0.0.0.0:* 0 49600 22999/dhclient
udp 0 0 0.0.0.0:43504 0.0.0.0:* 0 48850 22999/dhclient
udp6 0 0 :::47875 :::* 0 48851 22999/dhclient
- 我在这里也没有问题
- 这里如果没有监听 3306 端口或者只监听了
localhost
(0.0.0.0 表示监听所有),则在my.cnf
添加下面这一行
bind-address = 0.0.0.0
3、如果服务器是 CentOS7,将 MySQL 服务加入防火墙
sudo firewall-cmd --zone=public --permanent --add-service=mysql
返回 success。然后继续执行
sudo systemctl restart firewalld
重启防火墙之后就能正常访问了。
正文完