Navicat连接MySQL数据库提示:1130, “Host ‘xxxx‘ is not allowed to connect to this MySQL server“

当尝试远程连接MySQL数据库时,如果遇到错误,通常是因为MySQL配置限制了远程访问。要解决这个问题,可以登录MySQL命令行,使用`mysql-uroot-p`命令,检查root用户的host字段。host字段决定了用户可以从哪些IP地址访问数据库。例如,%表示允许所有IP,特定IP如101.101.1.%则限制了IP段。要允许远程连接,可更新root用户的host为%,并使用`flush privileges`刷新权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错如下:
在这里插入图片描述

之所以出现这个错误,是因为Mysql默认配置了不支持远程连接引起的,可以看下,在安装MySQL的服务器上使用 mysql -u root -p 命令登录MySQL命令行:
在这里插入图片描述
输入用户密码。
查看root用户的权限

use mysql;
 select host from user where user='root';

在这里插入图片描述
host字段代表什么意思?
Host列指定了允许用户登录所使用的IP,比如说root用户的host字段指定的值是101.101.1.1这个IP,那意思就是说root用户只能通过101.101.1.1这个IP的客户端去访问数据库。再比如说root用户的 Host字段设置为localhost,那么root用户只能通过本机客户端去访问。而%是个通配符,如果把root用户的host字段设置为%,那么root用户将可以在任何一个IP上都能连接上数据库,再比如root用户的Host设置为101.101.1.%,那么就表示只要是IP地址前缀为“101.101.1.”的客户端都可以连接。
到这里就明白了连接MySQL的时候为何会报上面的错误了吧,根据需要进行修改限制:

use mysql;
update user set host = '%' where user = 'root';
flush privileges;

总结下:
host的值:

  1. 指定IP的话只有指定的IP才能访问
  2. 101.101.1.%只有101.101.1段的IP才能访问
  3. %表示所有IP都能访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值