⚠️ 必須使用 MySQL Max/Cluster 版本,標準版不支援 NDB。
Server1 (Data+SQL): 192.168.0.1 mysql1.vmtest.net
Server2 (Data+SQL): 192.168.0.2 mysql2.vmtest.net
Server3 (Mgmt) : 192.168.0.3 mysql3.vmtest.net
# 兩台資料節點同樣執行
cd /usr/local
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
mv mysql-max-4.1.9-pc-linux-gnu-i686 mysql
cd mysql
groupadd mysql; useradd -g mysql mysql
scripts/mysql_install_db --user=mysql
chown -R root .; chown -R mysql data; chgrp -R mysql .
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
# 暫不啟動!
mkdir /usr/src/mysql-mgm; cd /usr/src/mysql-mgm
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
cd mysql-max-4.1.9-pc-linux-gnu-i686
mv bin/ndb_mgm bin/ndb_mgmd .
chmod +x ndb_mg*
mv ndb_mg* /usr/bin/
cd; rm -rf /usr/src/mysql-mgm
mkdir /var/lib/mysql-cluster; cd /var/lib/mysql-cluster
vi config.ini
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
[NDB_MGMD]
HostName=192.168.0.3
[NDBD]
HostName=192.168.0.1
DataDir=/var/lib/mysql-cluster
[NDBD]
HostName=192.168.0.2
DataDir=/var/lib/mysql-cluster
[MYSQLD]
[MYSQLD]
ndb_mgmd # 無輸出為正常
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.3
[mysql_cluster]
ndb-connectstring=192.168.0.3
# 第一次或 config.ini 變更後需加 --initial
ndbd --initial
# 後續重啟
ndbd
# 可加入 /etc/rc.local 開機自啟
# 管理節點執行
ndb_mgm
ndb_mgm> SHOW
預期輸出:
Connected to Management Server at: localhost:1186
Cluster Configuration
[ndbd(NDB)] 2 node(s)
id=2 @192.168.0.1 (Version: 4.1.9, Nodegroup: 0, Master)
id=3 @192.168.0.2 (Version: 4.1.9, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.3 (Version: 4.1.9)
[mysqld(API)] 2 node(s)
id=4 (Version: 4.1.9)
id=5 (Version: 4.1.9)
# Server1
mysql -u root -p
USE test;
CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
INSERT INTO ctest VALUES (1);
SELECT * FROM ctest; -- 應看到 1
# Server2 同步驗證
mysql -u root -p
USE test;
SELECT * FROM ctest; -- 應看到 1
INSERT INTO ctest VALUES (2);
# 回 Server1 查詢應看到 1,2
kill -9 ndbd_pid 模擬節點故障SHOW 觀察節點狀態變化ndbd(無需 --initial)本文基於 MySQL Cluster 4.1/5.1 時代架構。現代版本(MySQL Cluster 7.5/7.6/8.0)請參考官方文檔,主要變化:
ndb_setup.py 圖形化部署工具