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

兩節點 MySQL Cluster 搭建全紀錄:含管理節點、數據節點與 SQL 節點高可用部署

     編輯:MySQL 資料庫相關知識

架構說明

  • 兩數據節點:Server1 (192.168.0.1)、Server2 (192.168.0.2) —— 運行 ndbd 數據節點進程與 mysqld SQL 節點。
  • 一管理節點:Server3 (192.168.0.3) —— 僅運行 ndb_mgmd 管理進程與 ndb_mgm 客戶端,配置低、可共用、啟動後理論可關閉但強烈建議常駐(否則單點故障導致集群不可用)。
  • 版本要求:MySQL Max 版(如 mysql-max-4.1.9),Standard 版不支持 NDB。

部署步驟

1. 數據節點安裝 MySQL Max(Server1/Server2 同步執行)

groupadd mysql; useradd -g mysql mysql
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz -C /usr/local/
mv mysql-max-4.1.9-pc-linux-gnu-i686 /usr/local/mysql
cd /usr/local/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
# 暫不啟動 mysqld

2. 管理節點部署(Server3)


mkdir /usr/src/mysql-mgmt
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz -C /usr/src/mysql-mgmt
cd /usr/src/mysql-mgmt/mysql-max-4.1.9-pc-linux-gnu-i686
mv bin/ndb_mgm bin/ndb_mgmd /usr/bin/
chmod +x /usr/bin/ndb_mg*
mkdir -p /var/lib/mysql-cluster
cat > /var/lib/mysql-cluster/config.ini <<'EOF'
[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]
EOF
ndb_mgmd  # 啟動管理進程

3. 數據節點配置並啟動(Server1/Server2)


cat > /etc/my.cnf <<'EOF'
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.3

[mysql_cluster]
ndb-connectstring=192.168.0.3
EOF

mkdir -p /var/lib/mysql-cluster
/usr/local/mysql/bin/ndbd --initial  # 僅首次或 config.ini 變更需 --initial
/etc/rc.d/init.d/mysqld start

4. 驗證集群狀態(Server3)


ndb_mgm
ndb_mgm> SHOW
# 應看到 2 個 ndbd 節點、1 個 mgmd、2 個 mysqld(API) 節點均連接正常

5. 功能測試


# Server1
mysql -u root -p
USE test;
CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
INSERT INTO ctest VALUES (1);
SELECT * FROM ctest;  -- 返回 1

# Server2 重複驗證,雙向同步測試

6. 破壞性測試(高可用驗證)

  • 拔網線或 kill -9 ndbd 進程模擬節點故障。
  • 另一節點繼續服務讀寫。
  • 管理端 SHOW 顯示故障節點狀態。
  • 故障節點恢復:ndbd(無需 --initial)重新加入集群。

關鍵注意事項

  • 三節點是底線:兩數據節點 + 一管理節點,缺一不可。
  • NoOfReplicas=2:副本數等於數據節點數,單節點故障不丟數據。
  • 管理節點常駐:關閉後集群無法仲裁,新節點無法加入。
  • 防火牆/SELinux:開放 1186 (管理)、3306 (SQL)、NDB 內部通信端口。
  • 版本升級:滾動升級需遵循官方文檔,避免協議不兼容。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved