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

加入Galera Cluster遇WSREP连接超时错误,该如何解决?

Galera Cluster 连接超时错误(110)的解决方法

首先复现你遇到的错误日志:

2023-09-19T22:46:03.068834Z 0 [ERROR] WSREP: failed to open gcomm backend connection: 110: failed to reach primary view: 110 (Connection timed out)
at gcomm/src/pc.cpp:connect():160
2023-09-19T22:46:03.068858Z 0 [ERROR] WSREP: gcs/src/gcs_core.cpp:gcs_core_open():209: Failed to open backend connection: -110 (Connection timed out)
2023-09-19T22:46:03.069136Z 0 [ERROR] WSREP: gcs/src/gcs.cpp:gcs_open():1458: Failed to open channel 'zabbix_data_cluster' at 'ip1,ip2,ip3': -110 (Connection timed out)
2023-09-19T22:46:03.069150Z 0 [ERROR] WSREP: gcs connect failed: Connection timed out
2023-09-19T22:46:03.069155Z 0 [ERROR] WSREP: wsrep::connect(gcomm://ip1,ip2,ip3) failed: 7
2023-09-19T22:46:03.069163Z 0 [ERROR] Aborting

以下是针对性的排查和解决步骤:

1. 验证网络连通性

  • 在待加入节点上,用ping ip1、ping ip2、ping ip3测试与集群所有节点的基础连通性,确保无丢包或高延迟。
  • 检查Galera核心端口的可达性:
    telnet <集群节点IP> 4567  # 组播/单播通信端口
    telnet <集群节点IP> 4568  # 增量状态传输(IST)端口
    telnet <集群节点IP> 4444  # 全量状态传输(SST)端口
    
    若端口不通,排查节点间路由是否正常,是否有网络设备(交换机、路由器)的ACL限制。

2. 调整防火墙与SELinux

  • 临时关闭防火墙测试(仅用于定位问题):
    systemctl stop firewalld
    
    确认问题解决后,永久开放端口:
    firewall-cmd --add-port=4567/tcp --add-port=4568/tcp --add-port=4444/tcp --permanent
    firewall-cmd --reload
    
  • 检查SELinux状态,临时设置为宽容模式测试:
    setenforce 0
    
    问题解决后,可通过semanage配置SELinux允许相关端口通信。

3. 核对集群配置文件

检查待加入节点的my.cnf(或mysqld.cnf)中Galera相关参数:

  • wsrep_cluster_address:确认IP列表正确,格式为gcomm://ip1,ip2,ip3,无拼写错误
  • wsrep_cluster_name:必须与集群其他节点完全一致(示例中为zabbix_data_cluster)
  • wsrep_node_address:设置为当前节点的正确IP,避免用localhost或错误地址

4. 检查集群节点状态

  • 在已运行的集群节点上,确认集群处于Primary状态:
    SHOW STATUS LIKE 'wsrep_cluster_status';
    
    若结果为Non-primary,需先修复主节点状态。
  • 确认集群节点正常运行:
    systemctl status mariadb  # 或mysql,根据数据库类型
    

5. 遵循正确的集群启动顺序

  • 新集群初始化:先启动第一个节点,指定空集群地址,待启动完成后再启动其他节点:
    galera_new_cluster
    # 或手动启动
    mysqld_safe --wsrep_cluster_address=gcomm:// &
    
  • 加入已有集群:确保集群中至少有2个节点正常运行,避免单节点集群的脑裂或不可用问题。

6. 查看更多日志细节

  • 检查待加入节点的MySQL错误日志(通常在/var/log/mysql/error.log或/var/log/mariadb/mariadb.log),获取额外错误信息。
  • 查看集群其他节点的日志,确认是否有拒绝连接或异常状态记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:22:47