首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Windows Server 2003 部署 MySQL Cluster 7.1 完整實戰:三節點架構、配置、啟動、測試、常見坑點

     編輯:MySQL 資料庫相關知識

架構概覽

  • 管理節點 (MGM):管理配置、仲裁、日誌。
  • 資料節點 (NDB):儲存資料、同步複寫。
  • SQL 節點 (mysqld):對外提供 SQL 服務。
  • 邏輯角色可共機部署,生產建議 MGM 獨立。

實驗拓撲

機器IP角色
Node110.0.0.201MGM + SQL1 + NDB1
Node210.0.0.202SQL2 + NDB2

高速區域網路,禁用跨公網/跨網段部署(通訊未加密、需低延遲)。

軟體準備

  • 下載 mysql-cluster-gpl-noinstall-7.1.3-win32.zip(免安裝二進制)。
  • 解壓至 D:\mysql-cluster-gpl-noinstall-7.1.3-win32。
  • 將 bin 目錄加入系統 PATH。

1. 管理節點配置 (Node1: D:\mysql-cluster\config.ini)


[NDBD DEFAULT]
NoOfReplicas=1

[MYSQLD DEFAULT]

[NDB_MGMD DEFAULT]

[TCP DEFAULT]

# Management Server
[NDB_MGMD]
hostname=10.0.0.201

# Data Nodes
[NDBD]
hostname=10.0.0.201
datadir=D:\data

[NDBD]
hostname=10.0.0.202
datadir=D:\data

# SQL Nodes
[MYSQLD]
hostname=10.0.0.201

[MYSQLD]
hostname=10.0.0.202

端口:MGM 1186,NDB 2202 (5.0.3+ 自動分配)。

2. SQL/資料節點共用 my.ini (兩台機器)


[mysqld]
# SQL 節點啟用 NDB
ndbcluster
ndb-connectstring=10.0.0.201

# 資料節點連接 MGM
[mysql_cluster]
ndb-connectstring=10.0.0.201

建立目錄:D:\data、D:\tmp。
註冊服務:mysqld.exe -install mysql,設為手動啟動。

3. 啟動順序(關鍵)

  1. MGM:
    ndb_mgmd.exe -f D:\mysql-cluster\config.ini --configdir=D:\mysql-cluster
  2. 資料節點(兩台):
    首次:ndbd.exe --initial
    後續:ndbd.exe
  3. SQL 節點(兩台):
    net start mysql

4. 叢集管理客戶端


ndb_mgm.exe
ndb_mgm> SHOW

正常輸出:所有節點 connected、Nodegroup 正確。

5. 測試驗證


# Node1 建表寫入
mysql -u root test
CREATE TABLE city (nId MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
                   sName VARCHAR(20) NOT NULL) ENGINE=ndbcluster DEFAULT CHARSET=utf8;
INSERT INTO city VALUES (1,'city-1'),(2,'city-2');

# Node2 讀取
mysql -u root test
SELECT * FROM city;  -- 應看到兩筆

注意:NDB 表**必須指定 ENGINE=ndbcluster**,否則為本地表不進入叢集。

6. 故障測試

  1. 強制關閉某 NDB 節點 (Ctrl+C) → SQL 節點仍可讀寫。
  2. 重啟該 NDB 節點 → 自動同步追趕,資料一致。

7. 關閉叢集


ndb_mgm -e shutdown
# 或 ndb_mgm 環境下執行 shutdown
net stop mysql  # 關閉 SQL 節點

8. 關鍵限制與避坑

  • 每個 NDB 表**必須有主鍵**,無主鍵會自動生成隱含 PK 佔用記憶體,易導致 OOM。
  • 不支援外鍵、全文索引、空間索引、GIS。
  • 叢集版本**不可混用** MySQL Server 版本。
  • 記憶體規劃:DataMemory、IndexMemory 需足夠容納全量資料+索引。
  • 選擇 GA 穩定版(如 7.1.3),避免最新版未知 Bug。

擴展方向

  • 搭配 NLB/HAProxy 做 SQL 節點負載均衡。
  • 多資料中心部署需專用網路、同步複寫策略調整。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved