之前使用navicat链接centos7上的mysql时一直没问题,但是最近链接时报2003-Can't connect to MySQL server on ‘ip’(10060  "Unknown error"),暂时能想到的原因有以下几点:

1.防火墙未关闭

2.mysql未开启

3.mysql未授予远程权限登录

4.3306端口被占用

5.防火墙规则有问题

 根据上面自己罗列的原因,尝试解决问题


第一步:关闭防火墙

#停止防火墙服务
systemctl stop firewalld.service


#禁止开机启动:
systemctl disable firewalld.service

关闭防火墙以后,再次连接还是失败。

第二步:开启mysql

#开启mysql服务
systemctl start mysqld 

再次连接还是失败。

第三步:授予远程权限登录

#登录mysql
mysql -uroot -p

#授予权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;

#刷新权限
FLUSH PRIVILEGES;

#检查是否成功
select user,host from mysql.user;

#下面的图片表示成功
#退出
exit;

再次尝试连接,还是失败。

第四步:查看端口号

#查看端口号
firewall-cmd --list-port 

#如果没有 3306/tcp,则
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent

#重启防火墙
firewall-cmd --reload

尝试连接,再次报同样的错误。

 第五步:查看防火墙规则

#通过命令查看防火墙策略
sudo iptables -L | more

#如果输出内容为Chain INPUT (policy DROP),执行下面的语句
sudo iptables -P INPUT ACCEPT

#直到确认输出为Chain INPUT (policy ACCEPT)
sudo iptables -F 

#关闭防火墙
systemctl stop firewalld.service

最后尝试连接成功。

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐