MySQL叢集---②Windows平臺搭建MySQL CLUSTER叢集
本文將通過兩臺電腦來簡單介紹一下Windows平臺如何搭建MySQL叢集。
MySQL叢集支援多臺電腦,本文搭建的MySQL叢集以兩臺機子為例,其中一臺(IP為192.168.24.33)部署管理節點、資料節點和SQL節點,另一臺(IP為192.168.24.82)部署資料節點和SQL節點。
實際應用中,不要將管理節點跟資料節點部署到一臺機子上,因為如果資料節點宕機會導致管理節點不可用,同時整個MySQL群集也就都不可用了。所以一個MySQL群集理想情況下至少有三臺伺服器,將管理節點單獨放到一臺伺服器上。這裡以兩臺舉例,只是為了說明三種節點的配置啟動方法。
簡單介紹一下MySQL叢集涉及的三種節點:
管理節點(也可以稱管理伺服器)是整個叢集環境的核心,類似於叢集中起排程作用的樞紐,由它來負責管理其它節點(資料節點和SQL節點)的開啟、關閉或重啟某個節點等等;其他節點從管理節點檢索配置資料,當資料節點有新事件時就把事件資訊傳送給管理節點並寫入群集日誌。該管理節點也是從mysql
5.6版本之後才出現,可見資料庫對於搭建叢集這個方向正在提出新的需求和新的挑戰,也許在之後的版本中搭建叢集將變的非常簡單,期待後續版本功能更強大。
資料節點用於儲存資料,如使用者的資料、資料庫、表、檢視、儲存過程等都儲存在資料節點中。
SQL節點(即MySQL Service伺服器)跟一般的MySQL伺服器是一樣的,通過它來對資料進行管理和維護工作,為資料庫提供各種服務,如操作資料庫、安全、備份。
一、本例項MySQL叢集所需環境
1.兩臺電腦(本人使用兩臺Windows8 作業系統的電腦)。
2.MySQL Cluster軟體,官網地址:http://dev.mysql.com/downloads/cluster/
(本人使用的MySQL Cluster版本為:mysql-cluster-gpl-7.3.5-winx64.zip)
注意:下載合適的MySQL版本,包括平臺和安裝方式,推薦下載zip版本,便於配置和遷移
二、配置MySQL Cluster
1.配置管理節點
1.1 在IP為192.168.24.33的主機的C盤根目錄中新建資料夾mysql,然後在此資料夾下新建子目錄
bin和mysql-cluster,再將安裝包中的bin目錄下的ndb_mgm.exe和ndb_mgmd.exe拷貝到C:\mysql\bin下。在目錄C:\mysql\bin下新建cluster-logs目錄、config.ini檔案和my.ini檔案。1.2 config.ini檔案內容如下:
[ndbd default] # Options affecting ndbd processes on all data nodes: # Number of replicas NoOfReplicas=2 DataDir=c:/mysqlcluster/datanode/mysql/bin/cluster-data # Directory for each data node's data files # Memory allocated to data storage DataMemory=80M # Memory allocated to index storage IndexMemory=18M # For DataMemory and IndexMemory, we have used the # default values. [ndb_mgmd] # Management process options: # Hostname or IP address of management node 管理節點 HostName=192.168.24.33 # Directory for management node log files DataDir=C:/mysql/bin/cluster-logs [ndbd] # Options for data node "A": # (one [ndbd] section per data node) # Hostname or IP address 資料節點 HostName=192.168.24.33 [ndbd] # Options for data node "B": # Hostname or IP address HostName=192.168.24.82 [mysqld] # SQL node options: # Hostname or IP address sql節點 HostName=192.168.24.33 [mysqld] # SQL node options: # Hostname or IP address HostName=192.168.24.82
1.3 my.ini中的內容如下
[mysql_cluster] # Options for management node process config-file=C:/mysql/bin/config.ini
2.配置資料節點
2.1 在IP為192.168.24.33的主機中新建資料夾C:\mysqlcluster\datanode\mysql,然後在此資料夾(mysql)中繼續新建子目錄bin和cluster-data,bin下再建一個子目錄也叫cluster-data。
2.2 將安裝包data目錄下的所有檔案拷貝到C:\mysqlcluster\datanode\mysql\cluster-data下
2.3將安裝包中bin目錄下的ndbd.exe拷貝到C:\mysqlcluster\datanode\mysql\bin下,並在C:\mysqlcluster\datanode\mysql中新建my.ini檔案,檔案內容為:
注:因為各資料節點的配置是一樣的,所以我們可以直接將192.168.24.33主機中的資料夾C:\mysqlcluster拷貝到192.168.24.82主機的C盤下,並無需任何更改。[mysql_cluster] # Options for data node process: # location of management server ndb-connectstring=192.168.24.33
3.配置SQL節點
3.1 在192.168.24.33主機的C:\mysqlcluster下新建子目錄sqlnode,在C:\mysqlcluster\sqlnode下新建子目錄mysql,將安裝包檔案解壓到mysql目錄下,然後在C:\mysqlcluster\sqlnode\mysql下新建my.ini檔案,檔案內容為:
[mysqld] # Options for mysqld process: # run NDB storage engine ndbcluster # location of management server ndb-connectstring=192.168.24.33
3.2 將my-default.ini 檔案刪除或更名為my-default.ini.bak
注:因為各SQL節點的配置是一樣的,所以我們可以直接將192.168.24.33主機中的資料夾C:\mysqlcluster拷貝到192.168.24.82主機的C盤下,並無需任何更改。
三、啟動MySQL Cluster
在啟動MySQL Cluster之前,首先要做的是保證每個SQL節點上的MySQL服務能夠啟動成功,併為每個SQL節點進行相關許可權的分配以保證能夠遠端登入訪問。然後依次啟動三種節點。三種節點服務啟動時,一定要按照先啟動管理節點,後啟動資料節點,再啟動SQL節點的順序進行。
1.啟動MySQL服務
1.1 進入C:\mysqlcluster\sqlnode\mysql\bin目錄下,使用mysqld –install安裝MySQL服務
1.2 使用net start mysql命令啟動MySQL服務(如果已經安裝MySQL服務,就不必進行第1步操作)
若沒安裝MySQL服務,先安裝MySQL服務再開啟MySQL服務,按如下圖片進行
注:依次執行各個SQL節點,保證MySQL服務正確啟動。
2.配置MySQL遠端連線
2.1 進入C:\mysqlcluster\sqlnode\mysql\bin目錄下,使用mysql -uroot -p,然後輸入密碼,設定root使用者密碼。(注:剛安裝的MySQL,預設密碼為空!)
2.2 切換到mysql資料庫,輸入以下命令,為root使用者分配遠端連線的相關許可權
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIEDBY 'root' WITH GRANT OPTION;
接下來依次啟動各節點:
3.啟動管理節點
在192.168.24.33主機中開啟命令列視窗,切到C:\mysql\bin目錄,輸入
ndb_mgmd -f config.ini--configdir=C:\mysql\mysql-cluster 回車,管理節點服務就啟動了,命令列上可能沒有任何提示資訊,可以開啟C:\mysql\bin\cluster-logs\ndb_1_cluster.log日誌檔案檢視啟動資訊。
注意:此行命令列視窗不能關閉,除非想停止服務。
4.啟動資料節點
4.1 在192.168.24.33主機中開啟新命令列視窗,切到C:\mysqlcluster\datanode\mysql\bin,輸入 ndbd,按回車,資料節點就啟動了
4.2 以相同的方法在其他資料節點,即192.168.24.82中啟動資料節點服務。
4.3 檢視資料節點及SQL節點連線情況
在192.168.24.33主機中開啟新命令列視窗,切到目錄C:\mysql\bin,輸入:ndb_mgm;按回車,再輸入:
ALL STATUS,回車,就可以檢視資料節點的連線資訊了(若使用Show 會檢視到各管理節點、資料節點、SQL節點的連線資訊)
5.啟動SQL節點
5.1 在192.168.24.16主機中開啟新命令列視窗,切到C:\mysqlcluster\sqlnode\mysql\bin,輸入:
mysqld--console;回車,SQL節點啟動。
5.2 以相同的方法在其他SQL節點,即192.168.24.82中啟動SQL節點。
按上一步(4.3)檢視方法,使用show命令,檢視各SQL節點連線情況。若出現上圖情況,表示各節點均已連線成功!
四、測試MySQL Cluster
在任一SQL節點,即192.168.24.33主機上新建立一個數據庫mytestmysql,可以看到其他SQL結點,即192.168.24.82均建立了一個mytestmysqlB資料庫。在一臺機子上對資料表進行任何操作,另一臺機子上的資料庫也會進行相應的操作。
至此,Windows平臺搭建MySQL叢集的過程就介紹完了!搭建過程中可能會遇到些小問題,不過通過網路,基本上都可以解決。