CentOS7安装MySQL时遇到Can't connect to MySQL server on "..."(10060"Unknown error"
项目场景:使用CentOS安装MySQL
问题描述:安装完MySQL后,使用Navicat远程连接服务器时,报Can’t connect to MySQL server on “…”(10060"Unknown error")错误

原因分析:
1、网络不通;
2、服务未启动;
3、防火墙未关闭;
4、服务器上防火墙端口未开放;
5、端口未被监听;
6、权限不足。
解决方案:
查询mysql账户是否不允许远程连接
mysql -u root -p
show databases;
use mysql;
select host,user from user;

可以看到mysql已经设置允许远程连接
若root用户显示host为localhost,则需要授权 root 用户的所有权限并设置远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; //任何远程主机都可以访问数据库
FLUSH PRIVILEGES; //需要输入次命令使修改生效
quit; //退出
也可以通过修改表来实现远程:
use mysql;
update user set host = '%' where user = 'root';
select host, user from user;
查看是否开放了端口
#centos7查看防火墙开放的端口信息
firewall-cmd --list-ports

发现并没有开放端口,把端口打开
#新增一个开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#说明:
#–zone #作用域
#–add-port=80/tcp #添加端口,格式为:端口/通讯协议
#–permanent 永久生效,没有此参数重启后失效
#新增多个端口:
firewall-cmd --zone=public --add-port=80-90/tcp --permanent
#删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
#重新加载
firewall-cmd --reload
#查看本机已经启用的监听端口centos7以下使用netstat -ant,7使用ss
ss -ant
#centos7启动防火墙
systemctl start firewalld.service
#centos7停止防火墙/关闭防火墙
systemctl stop firewalld.service
#centos7重启防火墙
systemctl restart firewalld.service
#设置开机启用防火墙
systemctl enable firewalld.service
#设置开机不启动防火墙
systemctl disable firewalld.service

顺便开一下其他要开的端口
再次尝试连接,问题解决

1612

被折叠的 条评论
为什么被折叠?



