Navicat连接不上LINUX中MySQL8.0版本数据库问题解决

1、程序报错

2、项目背景

        在Linux系统中安装了MySQL8.0版本的数据库,Linux防火墙也设置了开放3306端口,但是在Navicat中连接时还是报错,错误为:ERROR 1130: Host ‘192.168.232.128’ is not allowed to connect to this MySQL server数据库不允许连接。

3、错误分析

        此时因为我已经设置防火墙开放了3306端口,但还是连接不上,就考虑到是不是我连接数据库的这个用户权限不足导致,因为在新建一个MySQL连接时,会有一个默认的mysql数据库,此数据库中有一个user用户表,此表就是用来设置所有用户的权限等。

         于是我查询了user表中的user字段和host字段,发现我想要进行数据库连接的root用户的host字段只有localhost环回地址,也就是只允许root用户从localhost或者127.0.0.1地址连接数据库,此时我们就需要将root用户的host字段改为'%',因为如果使用通配符%作为主机,则允许指定用户从任意主机连接

4、错误解决

(1)先关闭Linux防火墙

systemctl stop firewalld.service        关闭防火墙命令

systemctl start firewalld.service        开启防火墙命令

        但其实我们并不推荐直接关闭Linux防火墙,因为这样很不安全,容易被外部恶意攻击。

(2)不关闭Linux防火墙,而是开放其中的3306端口

        firewall-cmd --zone=public --add-port=3306/tcp --permanent

         出现success字样就是开启成功,我这里有警告是因为已经开启过了。

(3)重启防火墙(很重要,一定要刷新才能生效)

        firewall-cmd --reload

(4)登录数据库(一切一切的前提是数据库服务处于打开状态)

        mysql -u root -p

(5)查看所有用户的host字段

        select user,host from user;

         此时看到root用户的host字段是localhost也就是只允许本机地址连接数据库。

(6)修改root用户的host字段

        update user set host='%' where user='root';

        如果使用通配符%作为主机,则允许指定用户从任意主机连接

(7)修改完之后刷新特权

        flush privileges;       

 (8)再次测试连接

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值