群晖-解决MariaDB连接错误:Host ‘xxx‘ is not allowed to connect to this MariaDB server

引言

当你在尝试连接MariaDB数据库时遇到"Host 'xxx' is not allowed to connect to this MariaDB server"错误,这通常意味着数据库用户权限配置限制了远程或特定主机的连接。本文针对这一常见但令人困扰的数据库连接问题,提供了一套完整、可操作的解决方案。无论你是刚接触数据库的开发者,还是需要快速解决生产环境连接问题的运维人员,都能通过本文的步骤指导,快速定位问题根源并修复权限配置。我们将重点介绍如何使用phpMyAdmin图形化工具修改global_priv表中的用户主机权限,让你在10分钟内彻底解决这个连接障碍,恢复正常的数据库访问。

解决办法:

0. 使用命令行验证连接与权限

在开始使用图形化工具之前,建议先通过命令行验证连接并确认当前的权限设置。这有助于明确问题根源。

  1. 尝试连接 :在客户端机器上,使用 mysql 命令行工具尝试连接目标 MariaDB 服务器。

    bash 复制代码
    mysql -h 服务器IP地址 -u root -p

    如果连接失败并出现 Host '...' is not allowed to connect 错误,则确认是主机权限问题。

  2. 查看当前权限 (需在能成功连接的另一台机器或服务器本地执行):登录后,运行以下 SQL 命令查看 root 用户的当前主机(Host)设置。

    sql 复制代码
    SELECT user, host FROM mysql.user WHERE user='root';

    这条命令会列出所有 root 用户及其对应的允许连接的主机。如果结果中 host 列不包含你的客户端 IP 或 %(代表任意主机),则说明当前权限配置限制了你的连接。

完成此诊断步骤后,你将明确是否需要修改 root 用户的 Host 字段。接下来的步骤将指导你如何使用 phpMyAdmin 进行修改。

1.安装 phpmyadmin

使用root用户名称密码登录数据库(phpmyadmin)

2.找到mysqlglobal_priv

3.sql修改 global_priv中的root用户的Host

3.1.运行修改语句
复制代码
UPDATE mysql.global_priv SET Host='%' WHERE User='root';
3.2.重新加载权限表
复制代码
flush privileges;