Windows下搭建MySQL集羣

本文將討論在Windows下搭建MySQL集羣的步驟和搭建過程中應當注意的問題。

由於機器數量和性能有限,搭建環境爲一臺宿主機(IP:10.200.178.191),一臺虛擬機(IP:10.200.178.192)。

管理節點、數據存儲節點和SQL節點的分配情況如下:

管理節點:10.200.178.191

數據存儲節點:10.200.178.192

SQL節點:10.200.178.191和10.200.178.192

注意:生產環境中最好不要將數據存儲節點和管理節點放在同一臺機器上,否則如果數據存儲節點宕機,將導致管理節點宕機,最終後果是整個集羣宕機。

第一步:安裝MySQL CLuster集羣,下載地址:http://dev.mysql.com/downloads/cluster,下載Windows下的MySQL Cluster。

注意:如果在配置實例的過程中出現"mysql Error Nr. 2003”錯誤,說明本機安裝了IPV6,導致MySQL無法解析localhost爲127.0.0.1。

解決方法:在cmd中運行 ipv6 uninstall,安裝後在cmd中運行ipv6 install 就可以避免上述問題了,如果ping localhost時結果如下圖所示,表示正確。

第二步:配置MySQL集羣

   2.1:配置config.ini文件

在10.200.178.191機器的C:\mysql\mysql-cluster目錄下,新建config.ini初始文件,內容如下:

[NDBD DEFAULT]#ndbd節點的默認配置
NoOfReplicas=1#因爲每組數據節點個數,組數=數據節點總數/NoOfReplicas,且組數必須爲整數,#否則將報Nodegroup i has j members,NoOfReplicas=x此類錯#誤
DataDir=C:\mysql\mysql-cluster\bin\cluster-data   #Data node storage directory,ndbd配置的datadir優先級更高
DataMemory=80M    # 數據存儲分配的內存,酌情設置   
IndexMemory=18M   # 索引存儲分配的內存,酌情設置
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
#management node
[NDB_MGMD]
HostName=10.200.178.191
#data storage node 1
#[NDBD]
#HostName=10.200.178.191
#DataDir= D:\cluster-data#若沒有,請先創建該目錄
#data storage node 2
[NDBD]
HostName=10.200.178.192
DataDir= D:\cluster-data
#sql node 1
[MYSQLD]
HostName=10.200.178.191
#sql node 2
[MYSQLD]
HostName=10.200.178.192

   2.2:配置my.ini文件

在10.200.178.191機器的MySQL安裝目錄的bin下,找到my.ini,配置該機器爲MySQL節點,在該文件末尾添加如下內容:

[mysqld]                        
ndbcluster#mysql服務將作爲羣集的 SQL 節點啓動
ndb-connectstring=10.200.178.191#管理節點IP

在10.200.178.192機器的MySQL安裝目錄的bin下,找到my.ini,配置該機器爲數據存儲節點和MySQL節點,在該文件末尾添加如下內容:

[mysqld]#MySQL節點                        
ndbcluster
ndb-connectstring=10.200.178.191#管理節點IP
[mysql_cluster]#數據存儲節點
ndb-connectstring=10.200.178.191#管理節點IP

注意:每一次對配置文件進行修改後,務必重新啓動MySQL服務。

第三步:啓動MySQL集羣

MySQL集羣的啓動順序爲管理節點、數據節點和SQL節點

   3.1:啓動管理節點

在10.200.178.191機器的cmd下輸入ndb_mgmd -f "C:\mysql\mysql-cluster\config.ini"

注意:運行上述命令的前提是已將MySQL的bin目錄添加到了環境變量中的Path目錄下。
   3.2:啓動數據節點

在10.200.178.192機器的cmd下輸入ndbd.exe --initial

注意:第一次啓動數據節點必須加上 --initial,如果再次啓動時加 --initial會將所有的數據幹掉

   3.3:啓動sql節點

默認情況下是如果開啓動了MySQL服務,表示已開啓了SQL節點。

第四步:查看MySQL集羣狀態

 在任何一臺機器的cmd下輸入ndb_mgm回車後,輸入show查看集羣的狀態,如下圖所示:

第五步:測試MySQL集羣

 在任何一臺SQL節點上創建數據庫cluster,sql如下:

create table people(id int, name varchar(10)) engine=ndbcluster default charset utf8;

在任何一臺SQL節點的mysql客戶端下插入數據,然後在任何一臺SQL節點的mysql客戶端下查詢數據。

第六步:關閉MySQL集羣

MySQL集羣的關閉順序是SQL節點、存儲節點、管理節點

在集羣中每一臺機器的cmd下輸入net stop mysql關閉SQL節點

在集羣中任何一臺機器的cmd下輸入ndb_mgm回車後,輸入shutdown -e關閉數據存儲結點和管理結點

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章