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

添加WSREP配置后容器化MariaDB Galera Cluster节点启动失败排查

MariaDB Galera集群容器启动失败排查方案

核心故障原因

日志明确显示failed to reach primary view: 110 (Connection timed out),本质问题是所有节点都在尝试加入一个未初始化的集群。Galera集群要求必须有一个节点以bootstrap模式启动,负责创建初始集群,其他节点才能正常加入;当前所有节点都在等待连接已存在的集群,最终因超时退出。

修复步骤

1. 初始化第一个节点(bootstrap模式)

选择其中一个节点(比如IP为172.20.0.3的node1),通过以下两种方式之一启动集群:

  • 配置文件临时修改:将该节点的wsrep_cluster_address临时改为:
wsrep_cluster_address="gcomm://"

启动节点后,待集群初始化完成,再将配置改回gcomm://172.20.0.3,172.20.0.4,172.20.0.5,后续重启无需再修改。

  • 启动命令覆盖:启动容器时添加命令行参数,强制以bootstrap模式启动:
docker run [你的容器原有启动参数] --wsrep-new-cluster

2. 按顺序启动其他节点

等待第一个bootstrap节点完全启动(查看日志确认出现WSREP: view(view_id(PRIM,...)的信息,说明集群已形成主视图),再依次启动另外两个节点,它们会自动加入已创建的集群。

额外检查项

  • 端口连通性验证:虽然节点间ping通,但需确认Galera所需端口(4567、4568、4444)在容器内部可正常通信,可在容器内执行telnet 172.20.0.4 4567测试。
  • 挂载目录权限:确保主机挂载的/var/lib/mysql目录权限正确,容器内mysql用户对该目录有读写权限,避免集群状态文件无法创建。
  • 镜像兼容性:日志提示This image is deprecated,建议后续更换官方mariadb镜像,避免旧镜像的潜在兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 14:42:01