如何解决Mysql限制连接报1130的问题

来源:IPIPP.com作者:清原小日向头衔:网络博主
导读:本期聚焦于小伙伴创作的《如何解决Mysql限制连接报1130的问题》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何解决Mysql限制连接报1130的问题》有用,将其分享出去将是对创作者最好的鼓励。

当尝试连接Mysql数据库时,如果收到错误提示ERROR 1130: Host 'xxx' is not allowed to connect to this MySQL server,说明当前发起连接的主机没有被Mysql服务器授权访问。这个问题本质是Mysql的用户权限体系中,对连接来源主机的限制导致的,下面我们分场景讲解具体的解决方法。

如何解决Mysql限制连接报1130的问题

错误原因分析

Mysql的用户权限是基于用户名+来源主机的组合来管理的,默认情况下,新创建的Mysql用户或者初始的root用户,可能只允许在本地主机(localhost或者127.0.0.1)进行连接。如果发起连接的主机不在允许的范围内,就会触发1130错误。常见的场景包括:

  • 从其他服务器或者本地其他网卡IP尝试连接Mysql
  • 使用root用户首次尝试远程连接Mysql服务
  • 之前修改过用户权限,误删了对应主机的访问权限

本地连接报1130的解决方法

如果是本地连接就出现1130错误,大概率是本地用户权限配置异常,可以按照以下步骤处理:

步骤1:跳过权限验证启动Mysql

首先停止正在运行的Mysql服务,然后以跳过权限验证的方式启动Mysql,方便我们后续修改权限配置:

# 停止Mysql服务,不同系统命令可能有差异
systemctl stop mysqld
# 跳过权限验证启动Mysql
mysqld_safe --skip-grant-tables &

步骤2:修改用户host权限

启动后无需密码直接登录Mysql,然后查看当前用户的host配置:

-- 登录Mysql
mysql -u root
-- 切换到mysql系统库
USE mysql;
-- 查看用户和对应的允许连接host
SELECT user, host FROM user;

如果本地连接的用户host不是localhost或者127.0.0.1,可以执行以下语句修改:

-- 将root用户的host修改为localhost,允许本地连接
UPDATE user SET host = 'localhost' WHERE user = 'root';
-- 刷新权限使配置生效
FLUSH PRIVILEGES;

步骤3:重启Mysql服务

修改完成后退出Mysql,停止跳过权限的进程,然后正常启动Mysql服务即可:

# 停止跳过权限的Mysql进程
killall mysqld
# 正常启动Mysql服务
systemctl start mysqld

远程连接报1130的解决方法

如果是从其他主机远程连接Mysql出现1130错误,需要开放对应用户的远程连接权限,具体步骤如下:

步骤1:登录Mysql服务器

在Mysql所在的服务器上,使用有权限的账户登录Mysql,切换到mysql系统库。

步骤2:修改用户host允许远程连接

可以根据需求选择两种配置方式:

方式一:允许指定IP的主机连接,安全性更高:

-- 允许192.168.0.100的主机使用root用户连接Mysql
-- 如果密码需要修改可以加上IDENTIFIED BY '你的密码'
UPDATE user SET host = '192.168.0.100' WHERE user = 'root' AND host = 'localhost';
-- 刷新权限
FLUSH PRIVILEGES;

方式二:允许所有IP的主机连接,仅建议测试环境使用:

-- 允许所有主机使用root用户连接Mysql
UPDATE user SET host = '%' WHERE user = 'root';
-- 刷新权限
FLUSH PRIVILEGES;

步骤3:检查防火墙配置

如果修改权限后还是无法连接,需要检查Mysql所在服务器的防火墙,是否开放了Mysql默认的3306端口:

# 开放3306端口,firewalld防火墙命令
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload

注意事项

  • 修改用户权限后一定要执行FLUSH PRIVILEGES;语句,否则权限不会立即生效
  • 生产环境不建议将用户host设置为%,尽量限制为固定的可信IP,避免数据库被非法访问
  • 如果使用的是云服务器,还需要检查云服务商的安全组规则,是否开放了3306端口的入站权限
如果是新创建的用户出现1130错误,也可以在创建用户时直接指定允许的host,例如CREATE USER 'test'@'192.168.0.%' IDENTIFIED BY 'test123';,表示允许192.168.0段的所有主机使用该用户连接。

Mysql连接报错1130权限配置host设置远程连接修改时间:2026-07-16 16:54:32

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。