解决 MySQL 1130 错误:无法远程连接服务器的步骤

方予
方予
发布时间:2026-10-16| 5人浏览过
原创

当尝试从外部客户端连接 MySQL 或 MariaDB 时,若遇到 1130 - Host ... is not allowed to connect to this MariaDB server 错误,表明当前用户账户未被授权进行远程访问。MySQL 出于安全考虑,默认只允许 localhost 本地连接。本文将介绍如何通过修改数据库用户权限来解决此问题。

错误分析与解决思路

出现 1130 错误的根本原因在于数据库的用户表中,对应用户的 host 字段被限制为 localhost 或具体 IP,未包含通配符 % 或未配置外网 IP。要解决此问题,需要以 root 身份登录数据库,修改该用户的 host 属性并刷新权限。

开启远程登录权限的详细步骤

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

目的:进入数据库管理环境。
操作:在服务器终端使用命令行工具登录 root 账户。

# 假设密码为 password,请根据实际情况替换
mysql -u root -p

第2步:切换至 mysql 系统库

目的:访问存储用户权限信息的表。
操作:执行以下 SQL 语句。

use mysql;

第3步:修改用户访问权限

目的:将原本仅限本地连接的账户改为允许任意 IP 连接(或指定特定 IP)。
注意:不同版本的 MySQL/MariaDB 表结构略有差异,以下为通用更新方式。

若使用的是较新版本的 MySQL (8.0+) 或 MariaDB,通常建议使用 ALTER USER 语句:

-- 将 'root' 用户的 host 修改为 '%' (代表允许所有IP)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password' ;
UPDATE user SET host = '%' WHERE user = 'root';

如果是旧版本或简单场景,直接更新 host 字段亦可(操作前建议备份):

UPDATE user SET host = '%' WHERE user = 'root' AND host = 'localhost';

此处将 localhost 替换为 %,表示允许任何主机连接。出于安全考虑,生产环境中建议将 % 替换为具体的客户端 IP 地址。

第4步:刷新权限使配置生效

目的:将内存中的权限数据同步到磁盘并重新加载。
操作:执行刷新命令。

FLUSH PRIVILEGES;

验证连接

完成判断:离开数据库控制台后,尝试从另一台机器上使用客户端工具(如 Navicat、DBeaver 或命令行)连接该 MySQL 服务器。

mysql -h <server_ip> -u root -p

如果不再提示 1130 错误并能成功输入密码登录,说明远程权限已正确开启。

安全提示

虽然将 host 设为 % 能解决连接问题,但这意味着任何知道账号密码的人都能尝试连接。在生产环境中,建议采取以下安全措施:

  1. 限制 IP:仅在 UPDATE 语句中指定特定的客户端 IP,而非使用通配符 %。
  2. 强密码:确保 root 或其他高权限账户使用高强度的密码。
  3. 防火墙:配置云服务器或本地防火墙(如 iptables, ufw),仅允许受信任的 IP 段访问 3306 端口。

以上就是 MySQL 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 算法库。