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

MariaDB主从复制报'repl_user'@'10.0.0.5'访问被拒绝,异常IP来源排查

10.0.0.5 IP来源说明

报错信息里的repl_user@'10.0.0.5'是主库侧识别到的客户端连接源地址,出现非预期IP的常见原因如下:

  • 从库侧网络路由/NAT规则变更:从库访问主库的出站流量被SNAT转换为10.0.0.5,主库收到的连接源地址为NAT转换后的地址
  • 主库侧反向DNS解析异常:MariaDB默认开启客户端IP反向解析,如果主库的hosts文件、DNS服务器存在错误的PTR记录,会将从库实际IP反向解析为10.0.0.5
  • 从库网卡配置变更:从库新增了10.0.0.5网段的虚拟网卡/物理网卡,访问主库时自动选择该地址作为源IP
  • 中间层地址转换:主从之间新增了VPN、数据库代理、端口转发等中间节点,流量经过时源IP被替换为中间节点的10.0.0.5地址
排查步骤
  • 确认从库访问主库的实际源IP:在从库执行抓包命令 tcpdump -i any port 3306 and host 192.168.1.11,查看发往主库的数据包源IP。如果源IP确实为10.0.0.5,继续排查从库网络:
    • 执行 ip addr 查看所有网卡绑定的IP地址
    • 执行 ip route get 192.168.1.11 查看访问主库的路由规则,确认默认源IP
    • 执行 iptables -t nat -nL 查看是否存在修改出网源IP的SNAT规则
  • 如果抓包显示源IP为正常的192.168网段地址,排查主库反向解析配置:
    • 在主库执行 host <从库实际IP> 查看反向解析结果
    • 检查主库/etc/hosts文件是否存在错误的IP映射记录
  • 排查中间层设备:确认集群是否新增了VPN、网关、数据库代理等服务,检查主库3306端口是否配置了端口转发规则,确认流量路径是否被篡改
  • 验证主库用户权限:执行 SELECT user,host,password FROM mysql.user WHERE user='repl_user' ORDER BY LENGTH(host) DESC; 确认是否存在host更精确的同名repl_user用户(如repl_user@'192.168.%'),MySQL用户匹配优先级为更精确的host优先,若存在该类用户且密码配置错误也会触发权限拒绝。
解决方法
  • 若为NAT/源IP变更问题:恢复从库原有路由规则,确保访问主库的源IP为之前的合法地址;若10.0.0.5为合法的NAT出口IP,确认主库防火墙、SELinux未拦截该地址访问即可,由于repl_user的host配置为%,无需额外授权。
  • 若为主库反向解析问题:在主库配置文件my.cnf的[mysqld]段添加skip-name-resolve参数,重启MariaDB服务即可关闭反向解析,避免解析错误导致的异常。
  • 若为中间层地址转换问题:调整中间层转发规则,保留从库源IP,或者将中间层IP加入主库访问白名单即可。
  • 若为同名用户优先级问题:删除host更精确的错误repl_user用户,或者修改该用户的密码为正确的repl123即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:24:10