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

Linux虚拟机上MySQL Cluster(MCM)无法启动:防火墙开启时mysqld及API节点异常

MySQL Cluster防火墙开启时mysqld及API节点启动失败问题

问题描述

当所有虚拟机开启防火墙时,MySQL Cluster无法正常启动,仅数据节点和管理节点能启动,mysqld及API节点启动失败;关闭防火墙时集群可正常启动。

已尝试操作

在firewalld中添加1862、18620、1186端口并重启防火墙,但问题仍未解决。

集群架构

vm1(data node)
1 data node
vm2(management node + mysqld)
1 management node 
1 mysqld
10+ api nodes

错误日志

2024-03-14T09:57:54.641994Z 0 [System] [MY-010865] [NDB] connection[0], NodeID: 146, no storage nodes connected (timed out)
2024-03-14T09:57:55.890727Z 0 [System] [MY-010865] [NDB] connection[1], NodeID: 146, no storage nodes connected (timed out)
2024-03-14T09:57:57.138724Z 0 [System] [MY-010865] [NDB] connection[2], NodeID: 147, no storage nodes connected (timed out)
2024-03-14T09:57:58.388321Z 0 [System] [MY-010865] [NDB] connection[3], NodeID: 148, no storage nodes connected (timed out)
2024-03-14T09:57:58.389031Z 0 [System] [MY-010866] [NDB] Binlog: Starting...
2024-03-14T09:57:58.389521Z 2 [System] [MY-010866] [NDB] Binlog: Started
2024-03-14T09:57:58.389552Z 2 [System] [MY-010866] [NDB] Binlog: Setting up
2024-03-14T09:57:58.389878Z 2 [System] [MY-010866] [NDB] Binlog: Setup completed
2024-03-14T09:57:58.389892Z 2 [System] [MY-010866] [NDB] Binlog: Wait for server start
2024-03-14T09:57:58.389901Z 0 [System] [MY-010866] [NDB] Index Stat: Starting...
2024-03-14T09:57:58.389946Z 0 [System] [MY-010866] [NDB] Index Stat: Wait for server start
2024-03-14T09:57:58.390324Z 0 [System] [MY-010866] [NDB] Metadata: Starting...
2024-03-14T09:57:58.390365Z 0 [System] [MY-010866] [NDB] Metadata: Wait for server start
2024-03-14T09:57:58.400743Z 0 [System] [MY-010865] [NDB] ndbinfo prefix: './ndbinfo/ndb@0024'
2024-03-14T09:57:58.590289Z 0 [System] [MY-010229] [Server] Starting XA crash recovery...
2024-03-14T09:57:58.599903Z 0 [System] [MY-010232] [Server] XA crash recovery finished.

解决方案建议

  1. 确认完整端口需求
    MySQL Cluster组件间同时依赖TCP和UDP协议通信,需检查config.ini中的端口配置:

    • 管理节点默认端口:1186(TCP/UDP)
    • 数据节点默认通信端口:2202(TCP/UDP,用于节点间及与API节点交互)
    • 若自定义了1862、18620等端口,需确保这两个协议都开放
  2. 在firewalld中补全端口规则
    执行以下命令添加完整端口规则(替换为你的实际端口):

    firewall-cmd --add-port=1186/tcp --add-port=1186/udp --permanent
    firewall-cmd --add-port=2202/tcp --add-port=2202/udp --permanent
    firewall-cmd --add-port=1862/tcp --add-port=1862/udp --permanent
    firewall-cmd --add-port=18620/tcp --add-port=18620/udp --permanent
    firewall-cmd --reload
    
  3. 验证端口开放状态
    检查端口是否成功开放:

    firewall-cmd --list-ports
    
  4. 测试节点连通性
    在mysqld/API节点上测试与数据节点的端口连通性:

    nc -zv <vm1-ip> 2202
    nc -zv <vm1-ip> 1862
    

    若连接失败,需确认防火墙规则应用的网络区域是否正确,或是否存在其他网络限制。

  5. 核对集群配置
    确认config.ini中各节点的IP、端口配置与防火墙开放的端口完全一致,无配置冲突。

内容的提问来源于stack exchange,提问作者Rajoli Hemanth Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 07:27:41