步驟如下:
1、准備服務器
管理節點(MGM) 192.168.0.10(db1)
SQL節點1(SQL1) 192.168.0.20(db2)
SQL節點2(SQL2) 192.168.0.30(db3)
數據節點1(NDBD1) 192.168.0.40(db4)
數據節點2(NDBD2) 192.168.0.50(db5)
如果只想配置在兩台服務器上可以將db1,db2,db4放在同一台服務器上,db3,db5放在同一服務器上。
2、下載mysql-cluster-gpl-7.0.8a-win32.msi,MySQL的官方網站上就可以下載。分別安裝在准備好的服務器上。
3、在db1中創建C:\mysql\mysql-cluster,並且在MySQL-cluster文件夾中創建一個名為config.ini的文件,config.ini的內容如下:
[NDBD DEFAULT]
NoOfReplicas=2
[MySQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=192.168.0.10 #管理節點服務器db1的IP地址
# Storage Engines
[NDBD]
HostName=192.168.0.10 #MySQL集群db1的IP地址
DataDir= E:\data #如果不存在就創建一個
[NDBD]
HostName=192.168.0.30 #MySQL集群db3的IP地址
DataDir= E:\data #如果不存在就創建一個
[MySQLD]
HostName=192.168.0.10
[MySQLD]
HostName=192.168.0.30
4、在第2步安裝的mysql根目錄下,一般是(D:\Program Files\MySQL\MySQL Server 7.0)這樣的結構。在其中找到my.ini,在最後加入如下內容。
ndbcluster
ndb-connectstring=192.168.0.10
[MySQL_cluster]
ndb-connectstring=192.168.0.10 #db1的IP地址
5、使用"D:\Program Files\MySQL\MySQL Server 7.0\bin\ndb_mgmd.exe" - f "C:\mysql\MySQL-cluster\config.ini"啟動管理節點服務器。
6、使用"D:\Program Files\MySQL\MySQL Server 7.0\bin\ndbd.exe" --initial分別啟動節點服務。
7、啟動MySQL數據庫服務。
8、使用"D:\Program Files\MySQL\MySQL Server 7.0\bin\ndb_mgm.exe"檢查配置是否成功。一般地會輸出如下內容:
C:\Documents and Settings\Administrator>"D:\Program Files\MySQL\MySQL Server 7.0\bin\ndb_mgm.exe"
-- NDB Cluster -- Management ClIEnt --
ndb_mgm> show
Connected to Management Server at: 192.168.0.10:1186
Cluster Configuration [ndbd(NDB)] 2 node(s)
id=2 @192.168.0.10 (MySQL-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)
id=3 @192.168.0.30 (MySQL-5.1.37 ndb-7.0.8, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.10 (MySQL-5.1.37 ndb-7.0.8)
[MySQLd(API)] 2 node(s)
id=4 @192.168.0.10 (MySQL-5.1.37 ndb-7.0.8)
id=5 @192.168.0.30 (MySQL-5.1.37 ndb-7.0.8)
*可以使用quit或者bye退出程序。
9、在db1上使用MySQL -uroot -pxxxxxxx test
create table city(
id mediumint unsigned not null auto_increment primary key,
name varchar(20) not null default ''
engine = ndbcluster default charset utf8;
insert into city values(1, 'city1');
insert into city values(2, 'city2');
在db3上使用MySQL -uroot -pxxxxxxx test
MySQL> select * from city; |id | name | |1 | city1 | |2 | city2 |
+-----------+
OK。
最關鍵的是要使用ndbcluster 作為表的存儲引擎。
10、使用"D:\Program Files\MySQL\MySQL Server 7.0\bin\ndb_mgm.exe" -e shutdown停止集群。否則可能不會將全部數據寫到磁盤。