之前使用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
最后尝试连接成功。