解决MySQL/MariaDB 1130错误:无法远程连接的正确方法

远山来客
远山来客
发布时间:2026-10-15| 2人浏览过
原创

在配置数据库服务时,经常会遇到 MySQL 1130 错误提示“Host is not allowed to connect”,这通常意味着当前用户被限制为仅允许从 localhost(本地)连接。本文将详细说明如何通过修改用户表权限来解除这一限制,实现远程访问。

问题现象与原因

当尝试使用客户端工具远程连接数据库服务器时,如果看到类似以下的错误信息:

ERROR 1130 (HY000): Host 'xxx.xxx.xxx.xx' is not allowed to connect to this MariaDB server (注:MariaDB 是 MySQL 的一个分支,错误机制相同)

这说明该用户在 `mysql` 库的 `user` 表中,`Host` 字段被设定为 localhost 或具体 IP,而非允许所有主机访问的通配符 %。

一、开启远程登录权限

第1步:登录服务器数据库

使用终端命令行登录到您的 MySQL/MariaDB 服务器。通常需要 root 账户具有执行权限。

第2步:切换系统数据库

进入存储用户信息的 mysql 系统数据库:

use mysql;

第3步:修改用户主机权限

找到对应用户的权限记录,并将其 Host 字段从 localhost 更新为 %。% 代表允许任何 IP 地址的连接。如果您希望限制特定 IP,也可以替换为具体的服务器 IP 地址。

假设用户名是 root,更新语句如下(请根据实际情况替换用户名):

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

此操作的效果是将原本地回环地址的用户数据复制一份并更名,使得该用户可以接受来自任意主机的连接请求。

二、刷新MySQL权限

由于直接修改了底层用户表,内存中的权限缓存并未同步。必须执行刷新命令使更改立即生效。

flush privileges;

三、测试验证

回到您的本地电脑或远程客户端,使用新配置的账号密码尝试重新连接数据库。若不再弹出 1130 错误并成功进入命令行界面或查询界面,则说明设置成功。

补充说明与风险提醒

1. 安全性:将 Host 设为 % 会允许全网访问,建议同时设置强密码,并通过防火墙(如 iptables/ufw)限制仅允许特定 IP 段访问数据库端口(默认3306),生产环境不建议完全开放。

2. 版本差异:不同版本的 MySQL/MariaDB 中,用户表结构可能略有不同(例如新特性引入了 `auth_string`),上述命令适用于绝大多数常见场景。

以上就是MySQL/MariaDB解决1130错误的详细内容,更多关于远程连接权限配置的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。