| 角色 | 主機 | IP |
|---|---|---|
| 管理節點 (MGM) | server1 | 192.85.1.5 |
| 資料節點 (NDB) | server2 | 192.85.1.4 |
| 資料節點 (NDB) | server3 | 192.85.1.9 |
| SQL 節點 (API) | server2, server3 | 同上 |
複製因子 NoOfReplicas=2:每筆資料在兩個資料節點各存一份,單節點故障不丟資料。
sudo groupadd mysql
sudo useradd -g mysql mysql
cd /usr/local
sudo tar -xvf mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz
sudo ln -s mysql-cluster-gpl-7.1.9a-linux-i686-glibc23 mysql
cd mysql
sudo scripts/mysql_install_db --user=mysql
sudo chown -R root .
sudo chown -R mysql data
sudo chgrp -R mysql .
/etc/my.cnf (server2, server3)[mysqld]
ndbcluster
ndb-connectstring=192.85.1.5
[mysql_cluster]
ndb-connectstring=192.85.1.5
/usr/local/mysql/mysql-cluster/config.ini (server1)[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
[NDB_MGMD]
hostname=192.85.1.5
datadir=/usr/local/mysql/mysql-cluster/
[NDBD]
hostname=192.85.1.4
datadir=/var/lib/mysql-cluster/
[NDBD]
hostname=192.85.1.9
datadir=/var/lib/mysql-cluster/
[MYSQLD]
# SQL 節點自動註冊,無需額外配置
sudo mkdir -p /var/lib/mysql-cluster
/usr/local/mysql/bin/ndb_mgmd -f /usr/local/mysql/mysql-cluster/config.ini/usr/local/mysql/bin/ndbd --initial/usr/local/mysql/bin/ndbd/usr/local/mysql/bin/mysqld_safe --user=mysql &# 管理節點
/usr/local/mysql/bin/ndb_mgm
ndb_mgm> SHOW
# 應顯示 2 NDB nodes, 1 MGM, 2 API (SQL) nodes 全部 Connected
# SQL 節點任一台
mysql -u root -p
USE test;
CREATE TABLE test (name INT(10)) ENGINE=NDBCLUSTER;
INSERT INTO test VALUES (123);
# 另一 SQL 節點查詢
SELECT * FROM test; -- 應看到 123
ALTER TABLE tbl_name ENGINE=NDBCLUSTER;
Ubuntu 10.10 / MySQL 5.1 Cluster 極其老舊,**生產環境請升級至 Ubuntu 20.04/22.04 + MySQL Cluster 8.0**,獲得安全更新、效能提升與新功能(如線上 Schema 變更、更佳衝突偵測)。