| 機器 | IP | 角色 |
|---|---|---|
| Node1 | 10.0.0.201 | MGM + SQL1 + NDB1 |
| Node2 | 10.0.0.202 | SQL2 + NDB2 |
高速區域網路,禁用跨公網/跨網段部署(通訊未加密、需低延遲)。
mysql-cluster-gpl-noinstall-7.1.3-win32.zip(免安裝二進制)。D:\mysql-cluster-gpl-noinstall-7.1.3-win32。bin 目錄加入系統 PATH。
[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+ 自動分配)。
[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,設為手動啟動。
ndb_mgmd.exe -f D:\mysql-cluster\config.ini --configdir=D:\mysql-clusterndbd.exe --initialndbd.exenet start mysql
ndb_mgm.exe
ndb_mgm> SHOW
正常輸出:所有節點 connected、Nodegroup 正確。
# 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**,否則為本地表不進入叢集。
ndb_mgm -e shutdown
# 或 ndb_mgm 環境下執行 shutdown
net stop mysql # 關閉 SQL 節點
DataMemory、IndexMemory 需足夠容納全量資料+索引。