首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL Cluster 單機部署完整實戰:管理節點、數據節點與 SQL 節點搭建指南

     編輯:MySQL 綜合教學

MySQL Cluster 單機部署完整實戰:管理節點、數據節點與 SQL 節點搭建指南

MySQL Cluster (NDB) 是高可用、記憶體內、分布式存儲引擎。本文詳細記錄在 Windows 單機環境下部署「1 管理節點 + 2 數據節點 + 1 SQL 節點」完整集群的步驟,含目錄規劃、配置檔編寫、節點啟動順序、驗證測試與關閉流程。

一、架構角色說明

角色進程名職責本部署實例數
管理節點ndb_mgmd集群配置分發、狀態監控、仲裁1
數據節點ndbd / ndbmtd存儲數據、處理事務、同步副本2 (NoOfReplicas=2)
SQL 節點mysqld處理客戶端 SQL 請求、路由到數據節點1

二、目錄結構規劃

C:\ypl\mysql\mysqlc              -- MySQL Cluster 安裝目錄 (解壓包)
C:\ypl\mysql\my_Cluster\         -- 集群工作根目錄
├── ndb_data\                    -- 數據節點文件目錄
├── mysqld_data\                 -- SQL 節點數據目錄
│   └── ndbinfo\                 -- ndbinfo 系統庫
└── conf\                        -- 配置文件目錄
    ├── my.cnf                   -- mysqld 配置
    └── config.ini               -- 集群全局配置

三、配置文件編寫

1. my.cnf (SQL 節點配置)

[mysqld]
ndbcluster
datadir=C:\\ypl\\mysql\\my_Cluster\\mysqld_data
basedir=C:\\ypl\\mysql\\mysqlc
port=3306

2. config.ini (集群全局配置)

[ndb_mgmd]
hostname=localhost
datadir=C:\ypl\mysql\my_Cluster\ndb_data
id=1

[ndbd default]
noofreplicas=2
datadir=C:\ypl\mysql\my_Cluster\ndb_data

[ndbd]
hostname=localhost
id=3

[ndbd]
hostname=localhost
id=4

[mysqld]
hostname=localhost

關鍵參數:NoOfReplicas=2 要求至少 2 個數據節點,形成主備副本。

四、系統庫初始化

# 複製 mysql 系統庫到 ndb_data
xcopy C:\ypl\mysql\mysqlc\data\mysql C:\ypl\mysql\my_Cluster\ndb_data\mysql /E /I

# 複製 ndbinfo 到 mysqld_data
xcopy C:\ypl\mysql\mysqlc\data\ndbinfo C:\ypl\mysql\my_Cluster\mysqld_data\ndbinfo /E /I

五、節點啟動順序 (嚴格遵守)

1. 管理節點
start /B C:\ypl\mysql\mysqlc\bin\ndb_mgmd -f conf\config.ini --initial --configdir=C:\ypl\mysql\my_Cluster\conf

2. 數據節點 (依次啟動,等待同步完成)
start /B C:\ypl\mysql\mysqlc\bin\ndbd -c localhost:1186
start /B C:\ypl\mysql\mysqlc\bin\ndbd -c localhost:1186

3. SQL 節點
start /B C:\ypl\mysql\mysqlc\bin\mysqld --defaults-file=conf\my.cnf

六、狀態驗證

# 查看集群狀態
C:\ypl\mysql\mysqlc\bin\ndb_mgm -e show

預期輸出:

Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3    @127.0.0.1  (Version 5.6.23, Nodegroup: 0, Master)
id=4    @127.0.0.1  (Version 5.6.23, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @127.0.0.1  (Version 5.6.23)

[mysqld(API)]   1 node(s)
id=2    @127.0.0.1  (Version 5.6.23)

七、功能測試:建立 NDB 表

mysql -u root -p123456

DROP DATABASE IF EXISTS yplbeyond;
CREATE DATABASE yplbeyond;
USE yplbeyond;

CREATE TABLE users (
    id INT(3) AUTO_INCREMENT NOT NULL PRIMARY KEY,
    uid CHAR(50) NOT NULL,
    pwd CHAR(50) NOT NULL,
    realname CHAR(10) NOT NULL,
    phone CHAR(10) NOT NULL,
    mail CHAR(30) NOT NULL,
    date DATETIME NULL
) ENGINE=NDB;  -- 關鍵:指定 NDB 引擎

INSERT INTO users VALUES ('', '人民大學', 'rucedu', 'lizi', '00000000', '11@11', '');
SELECT * FROM users;

八、關鍵差異提醒

  • ENGINE=NDB:必須顯式指定,否則預設 InnoDB 不參與集群同步
  • NDB 表**不支援外鍵**、全文索引、空間索引 (早期版本)
  • 主鍵查詢極快 (記憶體哈希),範圍查詢較慢 (需全表掃描)
  • 單機部署僅供測試,生產環境**各節點分佈不同物理機器**

九、集群關閉流程

# 1. 關閉 SQL 節點
C:\ypl\mysql\mysqlc\bin\mysqladmin -u root -p123456 shutdown

# 2. 關閉整個集群 (管理節點發送關閉信號)
C:\ypl\mysql\mysqlc\bin\ndb_mgm -e shutdown

十、總結

MySQL Cluster 單機部署核心路徑:目錄隔離 → 雙配置文件 (my.cnf + config.ini) → 系統庫預置 → 嚴格啟動順序 (MGM → NDB → SQL) → ENGINE=NDB 驗證。掌握此流程,可快速搭建測試環境驗證 NDB 特性,為生產環境多機器部署打下基礎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved