通常产生的原因有:1、navicat连接mysql服务的用户的访问权限受限,2:centos7 防火墙机制不允许3306端口被访问
navicat连接mysql报错10060 - 图1

navicat连接mysql服务的用户的访问权限受限

针对这种情况,我们可以查看mysql 的用户访问权限

1. 使用mysql -uroot -p 登陆连接到MySQL服务,并输入密码
  1. mysql -uroot -p

2. 将mysql服务切换到mysql数据库上,执行 use mysql 指令
  1. use mysql

3. 查看mysql 服务的用户信息(用户名,可访问ip)(如果,root用户的host不是localhost而是%的话,跳过4)
  1. select user, host from user;

4. 修改root用户允许在任务机器上访问 update user set host=’%’ where user=’root’;
update user set host='%' where user='root';

5. 给 root 授权(所有权限)GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

6. 刷新用户权限,使root新设置的权限能够生效 flush privileges;
flush   privileges;

至此可以使用MySQL 客户端管理工具navicat 连接MySQL服务

centos7 防火墙机制不允许3306端口被访问

针对这种情况,我们可以查看centos7 的防火墙的运行状态

1. 查看centos7 firewalld 的运行状态 systemctl status firewalld
systemctl status firewalld

2. 加入防火墙是处于运行状态的话,再查看防火墙运行主机被访问的端口
firewall-cmd --zone=public --list-ports

3. 假如,防火墙没有开放3306端口(MySQL端口)的话,需要新增3306端口允许在外部被访问
firewall-cmd --zone=public --add-port=3306/tcp --permanent

4. 重新加载firewalld防火墙的配置信息使其生效
firewall-cmd --reload

5. 再次查看firewalld防火墙开放的端口列表
firewall-cmd --zone=public --list-ports

至此MySQL服务应该能够使用navicat工具进行连接