Windows環境配置MySQL集群
一、Cluster環境搭建
1、mysql Cluster(MySQL Cluster 7.5.4)文件下載地址:http://dev.mysql.com/downloads/cluster/
2、准備三台服務器(虛擬機,本人使用的是Windows Server 2008 R2 enterprise),一台用於配置管理節點,另外兩台每台配置一個數據節點和一個SQL節點:
管理節點:192.168.108.128
數據節點A:192.168.108.129
數據節點B:192.168.108.130
SQL節點A:192.168.108.129
SQL節點B:192.168.108.130
3、將下載壓縮包解壓到每台電腦的C:/mysql目錄下(其他盤也可以)
在管理節點C:\Mysql\Bin目錄下建立cluster-logs和config兩個文件夾cluster-logs用來存儲日志文件,在config文件夾中建立my.ini和config.ini兩個配置文件:
my.ini
[mysql_cluster]
# Options for management node process
config-file=C:/mysql/bin/config/config.ini
config.ini
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of replicas
DataDir=C:/mysql/bin/cluster-data # Directory for each data node's data files # Forward slashes used in directory path, # rather than backslashes. This is correct; # see Important note in text
DataMemory=80M # Memory allocated to data storage
IndexMemory=18M # Memory allocated to index storage # For DataMemory and IndexMemory, we have used the # default values. Since the "world" database takes up # only about 500KB, this should be more than enough for # this example Cluster setup.
[ndb_mgmd]
# Management process options:
HostName=192.168.108.128 # Hostname or IP address of management node
DataDir=C:/mysql/bin/cluster-logs # Directory for management node log files
[ndbd]
# Options for data node "A":
HostName=192.168.108.130 # Hostname or IP address
[ndbd]
# Options for data node "B":
HostName=192.168.108.129 # Hostname or IP address
[mysqld]
# SQL node A options:
HostName=192.168.108.130 # Hostname or IP address
[mysqld]
# SQL node B options:
HostName=192.168.108.129 # Hostname or IP address
4、在配置數據節點(192.168.108.129、192.168.108.130)的計算機上的C:\Mysql\Bin目錄下建立cluster-data文件夾,用來存放數據
5、至此,環境安裝完成
二、Cluster集群啟動
1、關閉防火牆
2、開啟管理工具
CMD命令:c:\mysql\bin\ndb_mgmd.exe --configdir=c:\mysql\bin\config --config-file=c:\mysql\bin\config\config.ini --ndb-nodeid=1 --reload –initial
3、開啟數據節點(注:必須以管理員運行dos,否則報錯)
CMD命令:c:\mysql\bin\ndbd.exe --ndb-connectstring=192.168.108.128
4、執行命令初始化mysql命令添加data目錄(巨坑)
CMD命令:C:\mysql\bin\mysqld --initialize-insecure --user=mysql
5、開啟sql節點
CMD命令:c:\mysql\bin\mysqld.exe --ndbcluster --ndb-connectstring=192.168.108.128 --console
6、在管理服務器查看開啟狀態
CMD命令:C:\mysql\bin\ndb_mgm.exe
7、注意,所有命令最好用管理員權限打開dos環境執行,啟動MySql Cluster集群的時候里面有兩大坑,第一大坑是一定得關閉防火牆,第二大坑就是mysql需要初始化。
至此,環境搭建完成,可以進入下一步測試、使用。
三、測試MySql 集群
1、在sql節點A的計算機上(192.168.108.129)的cmd中運行C:\mysql\bin\mysql.exe -u root -p命令登錄mysql,接下來需要輸入密碼時,密碼默認為空(直接回車)。
創建數據庫並插入數據:
—–創建名為”MySQL_Cluster_Test”的數據庫:
create database MySQL_Cluster_Test;
—–創建表”T_User”:
use MySQL_Cluster_Test;
create table T_User(Name varchar(32),Age int) engine=ndbcluster;
注意建表語句后面一定要加上 engine=ndbcluster
—–插入數據:
insert into T_User values('DannyHoo',26);
—–查詢數據:
select * from T_User;

2、在sql節點B也可以查詢到數據。
2、在sql節點B也可以查詢到數據。
同樣在sql節點B的計算機上()的cmd中運行C:\mysql\bin\mysql.exe -u root -p命令登錄mysql。192.168.108.130
執行 show databases; 命令可以查看到在sql節點A新建的數據庫;
執行use MySQL_Cluster_Test;
select * from T_User;
可以查詢到在sql節點A插入的數據。

到這里,整個集群的搭建和測試就完成了。假如一個數據節點宕機,並不會影響整個集群的運行,任何一個數據節點死掉甚至物理損壞都不用擔心,因為每個數據節點保存的數據都是完整的一份數據(在你操作數據的時候,它早就自動為你把最新的數據備份到每一個數據節點上啦)。你可以測試一下,這時手動停止某個數據節點和sql節點,另外一個數據節點和sql節點還會正常運行。當你把停止的數據節點和sql節點重新啟動時,會發現又重新連接到集群里了,而且每個數據節點的數據都是最新的。
