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

Windows本地Docker Compose部署MariaDB 10.2.14 Galera集群第二节点启动失败

解决MariaDB Galera集群第二个节点无法加入的问题

看你遇到的报错failed to reach primary view: 110 (Connection timed out),这通常是节点间网络不通或者集群配置有误导致的,结合Windows本地Docker Compose的场景,给你几个排查和解决的方向:

1. 检查Docker网络配置,确保节点间端口互通

Galera集群需要以下端口才能正常通信:

  • 3306:MySQL客户端连接端口
  • 4567:Galera集群节点间的通信端口(UDP/TCP)
  • 4568:IST(增量状态传输)端口
  • 4444:SST(全量状态传输)端口

在Windows的Docker环境中,默认bridge网络理论上能让Compose服务间互通,但如果遇到问题,建议显式定义自定义网络,避免默认网络的潜在限制:

version: '3'
networks:
  galera-net:
    driver: bridge

services:
  node1:
    image: mariadb:10.2.14
    networks:
      - galera-net
    # 其他配置...
  node2:
    image: mariadb:10.2.14
    networks:
      - galera-net
    # 其他配置...

你还可以在容器内互相ping对方的服务名,验证网络连通性:

# 进入第一个节点容器,ping第二个节点服务名
docker exec -it node1 ping node2
# 进入第二个节点容器,ping第一个节点服务名
docker exec -it node2 ping node1

如果ping不通,说明网络存在隔离问题,需要检查Docker的网络设置(比如WSL2/Hyper-V的网络权限)。

2. 确认第二个节点的集群地址配置正确

第二个节点的wsrep_cluster_address必须指向已成功引导的第一个节点,不要用localhost或宿主机IP(容器内的localhost是自身,Windows Docker的宿主机IP在WSL2/Hyper-V环境下无法直接被容器访问),直接用Compose服务名即可:

# node2的my.cnf配置片段
wsrep_cluster_address="gcomm://node1"

同时要注意:第一个节点启动时必须用wsrep_cluster_address="gcomm://"来初始化集群,第二个节点绝对不能用这个配置,必须指向已有节点。

3. 验证第一个节点是否真正完成集群初始化

第一个节点启动后,要确认它已经成为集群主节点,进入容器执行以下命令检查状态:

docker exec -it node1 mysql -u root -p -e "SHOW STATUS LIKE 'wsrep%';"

重点看这几个状态值:

  • wsrep_ready:必须为ON
  • wsrep_cluster_size:应该是1
  • wsrep_cluster_status:应该是Primary
    如果这些值不符合,说明第一个节点的集群初始化未完成,需要重启第一个节点,并在启动命令中加入引导参数:
# node1的Compose配置片段
command: --wsrep-new-cluster

注意:这个参数仅在集群第一次初始化时使用,后续重启节点不需要添加。

4. 调整SST(全量状态传输)配置

MariaDB 10.2默认用mysqldump作为SST传输方法,这种方法容易因网络或权限问题失败,建议改成rsync试试:

# 所有节点的my.cnf配置片段
wsrep_sst_method=rsync

另外要确保所有节点的root密码一致,因为SST传输需要用root用户进行数据同步。

5. 查看完整容器日志定位细节

你提供的日志是截断的,建议查看第二个节点的完整日志,获取更详细的错误提示:

docker logs node2

比如是否有DNS解析失败、SST连接被拒绝等具体信息,能帮你更快定位问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:56:39