Windows下mysql集群搭建


話不多說奔主題,精神抖擻就是干!

 

1.選用版本
官網一般提供兩種包
mysql-cluster-8.0.20-winx64.zip免安裝版
mysql-cluster-8.0.20-winx64.msi安裝版
這里我選用免安裝版
最新包請去官網下載
http://dev.mysql.com/downloads/cluster/


2.搭建環境
這里我使用三台Win10虛擬機進行搭建
(1)管理節點
10.6.10.250
(2)其中一台數據節點和Mysql節點
10.6.10.251
(3)剩下一台數據節點和Mysql節點
10.6.10.252
*選用三台的原因是將管理節點單獨部署,因為一旦管理節點宕機,集群服務將不可用
,數據節點和Mysql節點(把他倆看作一個整體)可以同時部署在一台機器上,當然也可以不在,這里我為了節省資源所以部署在一起


3.創建必須的文件夾
假設我這三台虛擬機的mysql-cluster程序文件路徑都為:
c:\mysql
我們進到bin目錄下
c:\mysql\bin
創建三個文件目錄
cluster-data集群數據節點文件夾(如果你的數據節點和Mysql節點是分開部署,那么這個文件夾只需要在數據節點下建立)
cluster-logs集群日志文件夾(這個文件夾其實只需要在管理節點下建立)
config配置文件夾(這個文件夾其實只需要在管理節點下建立)
*這里為了省事我在一台上建好這三個文件夾以后,直接拷貝到另外兩台的相同路徑下了


4.管理節點(10.6.10.250)
我們進到bin目錄下
c:\mysql\bin
這里有我們上一步創建的三個文件夾
我們進到config目錄下
c:\mysql\bin\config
創建兩個啟動所必須的文件
config.ini
my.ini
(1)config.ini配置信息如下
[ndbd default]
NoOfReplicas=2 #集群數量
DataDir=C:/mysql/bin/cluster-data
DataMemory=80M #默認
IndexMemory=18M #默認

[ndb_mgmd]
HostName=10.6.10.250 #管理節點地址
DataDir=C:/mysql/bin/cluster-logs

[ndbd]
HostName=10.6.10.251 #數據節點地址

[ndbd]
HostName=10.6.10.252 #數據節點地址

[mysqld]
HostName=10.6.10.251 #Mysql節點地址

[mysqld]
HostName=10.6.10.252 #Mysql節點地址

(2)my.ini配置信息如下
[mysql_cluster]
config-file=C:/mysql/bin/config/config.ini


5.啟動管理節點(在10.6.10.250這台機器上)
為保險起見,我們統一用管理員權限啟動cmd.exe
新打開一個cmd進到bin目錄下
c:\mysql\bin
鍵入命令
ndb_mgmd.exe --configdir=c:\mysql\bin\config --config-file=c:\mysql\bin\config\config.ini --ndb-nodeid=1 --reload –-initial
*將該節點作為管理節點啟動並指定節點id=1


6.啟動數據節點(分別在10.6.10.251和10.6.10.252機器上)
為保險起見,我們統一用管理員權限啟動cmd.exe
新打開一個cmd進到bin目錄下
c:\mysql\bin
鍵入命令
ndbd.exe --ndb-connectstring=10.6.10.250
*將該節點作為數據節點啟動並連接到管理節點


7.啟動Mysql節點(分別在10.6.10.251和10.6.10.252機器上)
為保險起見,我們統一用管理員權限啟動cmd.exe
新打開一個cmd進到bin目錄下
c:\mysql\bin
(1)鍵入命令
mysqld.exe --initialize-insecure
*該命令會在mysql目錄下創建data文件夾,並且創建無密碼的root用戶,少了這一步下面那個命令多半會報錯
鍵入命令
mysqld.exe -install *安裝mysql服務,這步貌似可以不做,做了也無礙,但千萬不要隨后又手賤啟動Mysql服務,例如鍵入命令net start mysql,如果啟動了Mysql服務,那么下面那個命令指定會報錯

(2)鍵入命令
mysqld.exe --ndbcluster --ndb-connectstring=10.6.10.250 --console
*將該節點作為Mysql節點啟動並連接到管理節點
*如果依然報錯,說是[The innodb_system data file 'ibdata1' must be writable]這種錯誤信息,
那可能是這台機器上已經運行了mysql服務,那么如下操作也許可以治療:
鍵入命令
net stop mysql //停止服務
mysqld.exe -remove //卸載服務
將mysql目錄下的data目錄刪除
重復步驟(1)(2)


8.查看集群狀態
在任意一台機器上,新打開一個cmd進到bin目錄下
c:\mysql\bin
鍵入命令
ndb_mgm.exe
進入到ndb_mgm>,鍵入命令show
ndb_mgm>show
如果前面7步全部正確,會顯示出當前有一個管理節點,兩個數據節點和兩個Mysql節點並顯示相關節點ID和IP地址信息等
*如果不是正常顯示,請回過頭來一步步檢查問題所在,直到放棄治療


9.創建數據庫,表,插入數據,驗證集群的數據同步是否有效
在任意一台Mysql節點上,新打開一個cmd進到bin目錄下
c:\mysql\bin
鍵入命令
mysql.exe -uroot -p
*這是我們第(7)步中,命令mysqld.exe --initialize-insecure創建的無密碼root用戶
進入到mysql>,鍵入命令
mysql>show databases;
*檢查基礎數據庫是否健全
mysql>create database test;
mysql>use test;
mysql>create table tt(name varchar(23),age int) engine=ndbcluster;

*如果不小心忘記加后綴了,也可以直接用修改表的方式添加上,例如:alter table tt engine=ndbcluster;
*創建表的時候如果不加engine=ndbcluster后綴,那么該表將不會進行集群同步
mysql>show tables;
mysql>insert into tt values('cluster',18);


10.到另外一台Mysql節點上檢查看看是否正確同步過來了
新打開一個cmd進到bin目錄下
c:\mysql\bin
鍵入命令
mysql.exe -uroot -p

進入到mysql>,鍵入命令

mysql>show databases;
mysql>use test;
mysql>show tables;
mysql>select * from tt;

 

最后,祝諸君好運,一次成功!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM