腳本功能概覽
- 支援多 MySQL 實例安裝 (不同埠、獨立目錄)。
- 自動編譯含
--with-ndbcluster 的 MySQL Server。
- 產生各實例專屬
my.cnf、啟動/停止/重啟腳本。
- 自動部署 Cluster 管理節點 (MGM)、資料節點 (DB)、API 節點 (SQL 節點)。
- 產生
config.ini 叢集設定檔與 Ndb.cfg 連線資訊。
關鍵配置區塊 (腳本前段)
# MySQL Server 設定
INST_SERVER=1
INST_PATH="/usr/local/mysql"
INST_PORTS="3306 3307" # 多實例埠號,空格分隔
MGM_HOST="192.168.1.253"
MGM_PORT="2200"
# Cluster 設定
INST_CLUSTER=1
COMPUTERS="192.168.1.253 192.168.1.252" # 主機清單
MGMS="192.168.1.253" # 管理節點主機
DBS="1" # 資料節點對應 COMPUTERS 編號 (從 1 起)
APIS="1 0 2 2" # API 節點對應編號,0 表不部署
安裝流程自動化步驟
- 依
INST_PORTS 迴圈編譯安裝 MySQL 至 $INST_PATH/N (N=1,2...)。
- 各實例配置
ndbcluster、ndb_connectstring、字元集 gbk、InnoDB 預設等參數。
- 執行
mysql_install_db 初始化系統表。
- 產生
start/stop/restart 控制腳本 (呼叫 mysql.server 或直接 mysqld)。
- Cluster 部署:複製
ndb_mgmd, ndbd 二進制檔至 $INST_PATH/cluster/。
- 依
COMPUTERS/MGMS/DBS/APIS 產生 config.ini (含 [TCP DEFAULT], [MGM DEFAULT], [DB DEFAULT], [API DEFAULT] 區段)。
- 產生
Ndb.cfg 指向管理節點。
使用方式
chmod 755 install.sh
./install.sh # 預設安裝至 /usr/local/mysql
# 或指定路徑
./install.sh /opt/mysql
安裝後啟動順序
- 管理節點:
cd /usr/local/mysql/cluster && ./ndb_mgmd
- 資料節點:
./ndbd (每台資料節點主機執行)
- SQL 節點:
cd /usr/local/mysql/1 && ./start (各實例)
- 管理客戶端:
./ndb_mgm 進入叢集管理介面。
注意事項
- 需具備編譯環境 (gcc/egcs, make, autoconf 等) 及 NDB 依賴庫。
- 腳本針對 MySQL 4.1/5.0 早期 Cluster 版本,現代版本 (7.5+, 8.0) 建議使用官方二進制包或容器化部署。
- 生產環境請審慎評估單點故障:管理節點建議雙機熱備。