解决MySQL 8.0远程连接报错 ERROR 1130 的配置方法
在使用 MySQL 8.0 进行本地开发或服务器管理时,常遇到外部客户端无法连接的 ERROR 1130 报错。该问题通常由默认的安全限制导致,仅允许 localhost 访问。本文提供一套标准的解决方案,通过调整用户表配置并刷新权限,快速恢复远程连接功能。
问题排查与准备
在执行任何数据库配置前,需确认基础网络连接正常,排除防火墙干扰。操作顺序:
- 检查网络连通性:在尝试连接的目标主机或本地终端中,使用 ping 命令测试服务器 IP(如
ping <服务器IP>),确保网络无阻断。 - 关闭或放行防火墙:CentOS 8 等系统可能默认拦截 3306 端口,需确保 iptables、firewalld 或云服务商安全组已开放相应端口。
具体操作步骤
第1步:切换用户权限配置
目的:将 root 用户的访问地址从 "localhost" 放宽至允许任意主机接入。
操作方法:
首先登录本地 MySQL,进入内置的 mysql 系统库,修改 user 表中的 host 字段。
命令执行:
mysql -u root -p<密码>
use mysql;
update user set host = '%' where user = 'root';
select host, user from user;
此时数据库应显示 root 的 host 为 %。对应的执行结果如下所示,展示如何查询当前用户的主机配置状态:
第2步:执行授权与刷新操作
目的:赋予 root 账号完整的远程操作权限,并让配置立即生效。由于 MySQL 8.0 的安全机制升级,仅有 update 往往不够,必须执行明确授权。
操作方法:
在命令行中运行授权语句,随后刷新系统特权表。
关键参数注意:
请务必使用英文分号结尾!同时,授权语句语法需严格匹配,避免语法错误导致 ERROR 1064。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
以下是授权成功并刷新后的界面表现截图:
第3步:验证远程连通性
完成判断:
退出数据库后,在另一台机器上使用 MySQL 客户端工具(如 Navicat、DBeaver 或命令行)尝试连接。若无报错且能打开库目录,即说明配置已完成。整体操作逻辑梳理可参考下图步骤:
排错指南
- 授权语法报错 (ERROR 1410/1064):若发现旧版教程中的
GRANT...报错,通常是版本差异。请核对 SQL 语句末尾的分号和空格;MySQL 8.0 推荐先CREATE USER再GRANT,但上述联合操作在大多数标准安装中仍然适用。 - 依然报 ERROR 1130:检查是否有多余的匿名用户(User为空)覆盖了 root 的路由规则,可尝试删除非必要的空用户记录后再执行上述步骤。
以上就是关于解决 MySQL 8.0 开启远程连接报错的详细内容,更多关于 MySQL 远程访问权限配置的实用资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













