CentOs7.5 mysql远程访问拒绝问题

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

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

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

1.2、 将mysql服务切换到mysql数据库上,执行 use mysql 指令

1.3、查看mysql 服务的用户信息(用户名,可访问ip)(如果,root用户的host不是localhost而是%的话,跳过1.4)

select user, host from user;

user 代表mysql服务可访问的用户,host代表用户运行在制定的ip上访问(localhost,表示本机)

1.4、修改root用户允许在任务机器上访问 update user set host=% where user=root;(我这里的已经是修改为整个状态的)

1.5、 给 root 授权(所有权限)GRANT ALL PRIVILEGES ON *.* TO root@% IDENTIFIED BY root WITH GRANT OPTION;

(遮盖的地方为密码,可以根据密码验证规则来设置,这里可以参考我的另外一篇:)

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

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

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

2.1、查看centos7 firewalld 的运行状态 systemctl status firewalld

2.2加入防火墙是处于运行状态的话,再查看防火墙运行主机被访问的端口

firewall-cmd --zone=public --list-ports

2.3、假如,防火墙没有开放3306端口(MySQL端口)的话,需要新增3306端口允许在外部被访问

2..4、重新加载firewalld防火墙的配置信息使其生效

firewall-cmd --reload

2.5、再次查看firewalld防火墙开放的端口列表

firewall-cmd --zone=public --list-ports

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

经验分享 程序员 微信小程序 职场和发展