You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Maxscale环境下配置MariaDB Galera集群的用户访问权限

问题原因解析

这个问题的核心是Maxscale的认证分为两个独立阶段,两个阶段的请求来源地址不一样,你配置的单网段权限无法同时满足两个阶段的匹配规则:

  • 第一阶段:客户端到Maxscale Listener
    你配置的Listener监听地址是127.0.0.1,说明业务客户端是部署在前端服务器本地,访问Maxscale时的来源IP就是127.0.0.1,不在你一开始配置的10.1.0.0/24网段范围内,所以Maxscale在第一阶段校验用户权限时就直接拒绝了访问,对应你收到的第一个报错。
  • 第二阶段:Maxscale到后端Galera节点
    当你把用户来源改为127.0.0.1后,第一阶段客户端到Maxscale的认证通过,但接下来Maxscale需要使用相同的用户凭证去向后端Galera节点发起连接,此时请求的来源IP是前端服务器的10.1.0.x网段IP,如果后端MariaDB开启了主机名反向解析,就会把这个IP解析为frontal1主机名,和你配置的127.0.0.1不匹配,因此触发第二个报错。

当你把用户来源改为%(允许所有地址访问)后,两个阶段的来源地址都能匹配权限规则,因此认证恢复正常。

推荐修复方案
  • 方案一:调整Listener监听地址
    将Maxscale的Listener监听地址改为前端服务器的10.1.0.x网段IP,而非127.0.0.1,同时在后端MariaDB创建用户'user'@'10.1.0.%',两个认证阶段的来源IP都属于10.1.0.0/24网段,可直接匹配权限规则。
  • 方案二:配置多来源同权限用户
    如果你必须保留Listener监听127.0.0.1的配置,可以在后端MariaDB创建两个权限完全一致的用户即可:
CREATE USER 'user'@'127.0.0.1' IDENTIFIED BY '你的密码';
CREATE USER 'user'@'10.1.0.%' IDENTIFIED BY '你的密码';
-- 给两个用户授权相同的库表权限
  • 额外优化:建议在所有Galera节点的MariaDB配置中添加skip_name_resolve = 1,关闭主机名反向解析,避免IP解析为主机名导致的权限匹配失败问题。

内容的提问来源于stack exchange,提问作者CrazyRabbit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 07:06:04