链接数据库时忽然遇到一个问题。Mac Navicat链接时报错Can’t connect to MySQL server on ‘xx.xx.xx.xx’ (61)。
PS. win版Navicat 报错Can’t connect to MySQL server on ‘xx.xx.xx.xx’ (10038)
其中xx.xx.xx.xx是ip地址。
mysql> SELECT * FROM mysql.user;
+-----------+-----------+
| User | Host |
+-----------+-----------+
| M | % |
| mysql.sys | localhost |
| root | localhost |
| tommy | % |
| showhilllee | % |
+-----------+-----------+
5 rows in set (0.00 sec)
很显然,M是允许从其它服务器登陆的。
执行命令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 127.0.0.1:6379 0.0.0.0:* LISTEN 0 753855 30154/redis-server
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 62981 7834/nginx: worker
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 16422 851/sshd
我在这里也没有问题。
这里如果没有监听3306端口或者只监听了localhost(0.0.0.0表示监听所有),则在my.cnf添加下面这一行
bind-address = 0.0.0.0
执行命令
sudo firewall-cmd --zone=public --permanent --add-service=mysql
返回success。然后继续执行
sudo systemctl restart firewalld
我的重启防火墙之后就能正常访问了。