在 MySQL 安装完成后,很多开发者会遇到这样一个问题:
错误代码 1130:host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server
这个错误通常出现在尝试通过远程工具(如 Navicat、DBeaver 等)连接 MySQL 数据库时,虽然服务器可以 ping 通、也可以 telnet 端口,但就是无法建立数据库连接。
本文将介绍排查并解决该问题的步骤。
第一步:问题描述
当你使用远程客户端试图连接 MySQL 服务器时,会提示如下错误信息:
1130 - host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server
第二步:登录 MySQL 服务器并进入命令行
首先,你需要登录到运行 MySQL 服务的服务器中,使用 root 用户登录 MySQL 命令行:
mysql -u root -p
系统会提示你输入密码,输入后即可进入 MySQL 操作界面。
第三步:查看所有数据库
在 MySQL 命令行中执行以下命令,查看当前所有的数据库:
SHOW DATABASES;
你会看到包括 mysql 在内的多个系统数据库。
第四步:切换到 mysql 数据库
我们要修改的是 mysql 数据库中的用户权限配置,因此需要先进入该数据库:
USE mysql;
第五步:查看 mysql 数据库中的表
为了确认我们是否找到了用户权限相关的表,可以查看当前数据库中的所有表:
SHOW TABLES;
你应该能看到一个名为 user 的表,它存储了 MySQL 用户的登录权限信息。
第六步:查看 user 表中的 Host 和 User 字段
接下来查询 user 表中的用户和主机限制:
SELECT Host, User FROM user;
这说明目前只有本地可以访问 root 用户,远程请求不被允许。
第七步:修改 user 表中的 Host 值
为了让 root 用户可以从任意主机连接,我们需要将 Host 设置为 %:
UPDATE user SET Host = '%' WHERE ;


