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

Docker Compose部署MySQL Cluster后跨节点表不同步求助

解决MySQL Cluster表未同步的问题

1. 确认表的存储引擎类型

MySQL Cluster仅同步使用NDBCluster(或NDBCLUSTER)存储引擎的表,MyISAM/InnoDB等本地引擎的表不会在节点间同步。

  • 连接172.28.0.11节点,执行以下命令检查目标表的引擎:
    SHOW CREATE TABLE 你的表名;
    
  • 如果输出的ENGINE字段不是NDBCluster,立即修改存储引擎:
    ALTER TABLE 你的表名 ENGINE=NDBCluster;
    
    后续建表时务必显式指定ENGINE=NDBCluster,避免使用默认引擎导致同步失败。

2. 验证NDB数据节点的运行状态

  • 进入集群管理节点容器(如果部署了管理节点),执行ndb_mgm进入管理控制台,输入SHOW命令查看所有数据节点状态,确保所有节点处于started状态,无disconnected或starting异常。
  • Docker环境下进入管理节点的命令:
    docker exec -it 管理节点容器名 ndb_mgm
    

3. 检查SQL节点的集群配置

  • 确认所有SQL节点的my.cnf(或挂载的配置文件)中包含以下必要参数:
    • ndbcluster:启用NDB集群功能
    • ndb-connectstring:正确指向集群管理节点的地址
  • 核对Docker Compose配置中,各SQL节点的环境变量或配置挂载是否正确,避免出现地址写错、参数缺失的情况。

4. 检查SQL节点的集群连接状态

  • 在172.28.0.12节点执行以下命令,确认节点是否正常接入集群:
    SHOW STATUS LIKE 'Ndb_cluster_connection_status';
    
  • 如果输出不是connected,排查以下问题:
    • 测试172.28.0.12容器与管理节点、数据节点的网络连通性(比如用ping命令)
    • 确认容器间防火墙/安全组是否开放NDB默认端口(1186、2202等)

5. 手动触发元数据同步

若存在元数据同步延迟,可在172.28.0.12节点执行:

FLUSH TABLES;

或重新连接数据库,查看表是否正常显示。

6. 排查集群日志找异常

  • 查看数据节点和管理节点的日志,定位同步错误:
    • 数据节点日志通常在容器内/var/lib/mysql-cluster/目录下
    • 查看容器日志的命令:
      docker logs 管理节点容器名
      docker logs 数据节点容器名
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:36:21