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

添加第4个MariaDB Galera节点失败,寻求技术解决方案

解决Galera集群添加异地节点失败的问题

我帮你梳理下这个问题的核心原因和解决步骤,都是Galera集群异地扩容时常见的坑:

1. 先搞定版本不兼容的核心问题

Galera集群对版本一致性的要求极高——所有节点的MariaDB主版本、小版本,甚至Galera库版本必须完全一致。你的旧节点是10.1.29,新节点是10.1.33,哪怕同属10.1系列,小版本差异也会导致同步协议不兼容,这是你报错的主要原因之一。

解决步骤:

  • 停止新节点的MariaDB服务:
    sudo systemctl stop mariadb
    
  • 卸载当前10.1.33版本,添加对应10.1.29的软件源,重新安装完全匹配的版本
  • 验证/usr/lib/galera/libgalera_smm.so的版本和旧节点一致(可以从旧节点复制该文件替换新节点的对应文件,确保底层Galera库版本统一)

2. 排查异地网络与端口问题

异地节点的网络限制是SST同步超时的高频原因,你需要确保新节点和所有旧节点之间开放以下端口:

  • 3306:MySQL服务端口
  • 4567:Galera集群通信端口(TCP和UDP都要开)
  • 4568:IST增量同步端口
  • 4444:rsync方式的SST同步端口

可以在新节点用telnet node1_ip 4567测试连通性,如果不通,检查防火墙、安全组或者异地网络的策略限制。

3. 修正集群配置的细节问题

  • 旧节点配置要生效:你已经在旧节点的galera.cnf里加了新节点IP,但必须逐个重启旧节点的MariaDB服务,否则旧节点不会识别新节点的加入请求
  • 新节点配置调整:
    • 把新节点wsrep_cluster_address里的自己IP去掉,只填已运行的三个旧节点IP:
      wsrep_cluster_address="gcomm://node1_ip,node2_ip,node3_ip"
      
    • 清空新节点/var/lib/mysql/下的所有文件(保留配置相关文件),初始状态的残留数据会干扰SST同步:
      sudo rm -rf /var/lib/mysql/*
      

4. 查看更详细的日志定位问题

如果以上操作后还是失败,去看更细节的日志:

  • 新节点的MariaDB错误日志:/var/log/mysql/error.log
  • 作为donor的旧节点的SST日志:/var/log/mysql/rsync_sst.log,里面会记录rsync传输时的具体错误(比如权限、文件缺失等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:00:16