本文將通過兩台電腦來簡單介紹一下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集群的搭建過程:一、本實例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文件,文件內容為:
- [mysql_cluster]
- # Options for data node process:
- # location of management server
- ndb-connectstring=192.168.24.33
注:因為各數據節點的配置是一樣的,所以我們可以直接將192.168.24.33主機中的文件夾C:\mysqlcluster拷貝到192.168.24.82主機的C盤下,並無需任何更改。
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集群的過程就介紹完了!搭建過程中可能會遇到些小問題,不過通過網絡,基本上都可以解決。