MySQL集群配置一、介紹 ======== 這篇文檔旨在介紹如何安裝配置基於2台服務器的MySQL集群。並且實現任意一台服務器出現問題或宕機時MySQL依然能夠繼續運行。 注意! 雖然這是基於2台服務器的MySQL集群,但也必須有額外的第三台服務器作為管理節點,但這台服務器能夠在集群啟動完成後
一、介紹========這篇文檔旨在介紹如何安裝配置基於2台服務器的MySQL集群。並且實現任意一台服務器出現問題或宕機時MySQL依然能夠繼續運行。注意!雖然這是基於2台服務器的MySQL集群,但也必須有額外的第三台服務器作為管理節點,但這台服務器能夠在集群啟動完成後關閉。同時需要注意的是並不推薦在集群啟動完成後關閉作為管理節點的服務器。盡管理論上能夠建立基於只有2台服務器的MySQL集群,但是這樣的架構,一旦一台服務器宕機之後集群就無法繼續正常工作了,這樣也就失去了集群的意義了。出於這個原因,就需要有第三台服務器作為管理節點運行。另外,可能很多朋友都沒有3台服務器的實際環境,能夠考慮在VMWare或其他虛擬機中進行實驗。下面假設這3台服務的情況: Server1: mysql1.vmtest.net 192.168.0.1Server2: mysql2.vmtest.net 192.168.0.2Server3: MySQL3.vmtest.Net 192.168.0.3Servers1和Server2作為實際配置MySQL集群的服務器。對於作為管理節點的Server3則需要較低,只需對Server3的系統進行很小的調整並且無需安裝MySQL,Server3能夠使用一台配置較低的電腦並且能夠在Server3同時運行其他服務。
二、在Server1和Server2上安裝MySQL=================================從[url]http://www.mysql.com[/url]上下載mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz注意:必須是max版本的MySQL,Standard版本不支持集群部署!以下步驟需要在Server1和Server2上各做一次# mv mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/# cd /usr/local/# groupadd mysql# useradd -g mysql mysql# tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz# rm -f mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz# mv mysql-max-4.1.9-pc-Linux-gnu-i686 mysql# cd mysql# scripts/mysql_install_db --user=mysql# chown -R root .# chown -R mysql data# chgrp -R mysql .# cp support-files/mysql.server /etc/rc.d/init.d/mysqld# chmod x /etc/rc.d/init.d/mysqld# chkconfig --add mysqld此時不要啟動MySQL!
三、安裝並配置管理節點服務器(Server3)=====================================作為管理節點服務器,Server3需要ndb_mgm和ndb_mgmd兩個文檔:從[url]http://www.mysql.com[/url]上下載mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz# mkdir /usr/src/mysql-mgm# cd /usr/src/mysql-mgm# tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz# rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz# cd mysql-max-4.1.9-pc-Linux-gnu-i686# mv bin/ndb_mgm .# mv bin/ndb_mgmd .# chmod x ndb_mg*# mv ndb_mg* /usr/bin/# cd# rm -rf /usr/src/mysql-mgm現在開始為這台管理節點服務器建立配置文檔:# mkdir /var/lib/mysql-cluster# cd /var/lib/mysql-cluster# vi config.ini在config.ini中添加如下內容:[NDBD DEFAULT]NoOfReplicas=2[MYSQLD DEFAULT][NDB_MGMD DEFAULT][TCP DEFAULT]# Managment Server[NDB_MGMD]HostName=192.168.0.3 #管理節點服務器Server3的IP地址# Storage Engines[NDBD]HostName=192.168.0.1 #MySQL集群Server1的IP地址DataDir= /var/lib/mysql-cluster[NDBD]HostName=192.168.0.2 #MySQL集群Server2的IP地址DataDir=/var/lib/mysql-cluster# 以下2個[MYSQLD]能夠填寫Server1和Server2的主機名。# 但為了能夠更快的更換集群中的服務器,推薦留空,否則更換服務器後必須對這個配置進行更改。[MYSQLD][MySQLD]保存退出後,啟動管理節點服務器Server3:# ndb_mgmd啟動管理節點後應該注意,這只是管理節點服務,並不是管理終端。因而您看不到任何關於啟動後的輸出信息。
四、配置集群服務器並啟動MySQL=============================在Server1和Server2中都需要進行如下改變:# vi /etc/my.cnf[mysqld]ndbclusterndb-connectstring=192.168.0.3 #Server3的IP地址[mysql_cluster]ndb-connectstring=192.168.0.3 #Server3的IP地址保存退出後,建立數據目錄並啟動MySQL:# mkdir /var/lib/mysql-cluster# cd /var/lib/mysql-cluster# /usr/local/mysql/bin/ndbd --initial# /etc/rc.d/init.d/mysqld start能夠把/usr/local/MySQL/bin/ndbd加到/etc/rc.local中實現開機啟動。注意:只有在第一次啟動ndbd時或對Server3的config.ini進行改變後才需要使用--initial參數!
五、檢查工作狀態================回到管理節點服務器Server3上,並啟動管理終端:# /usr/bin/ndb_mgm鍵入show命令查看當前工作狀態:(下面是個狀態輸出示例)[root@mysql3 root]# /usr/bin/ndb_mgm-- NDB Cluster -- Management ClIEnt --ndb_mgm> showConnected to Management Server at: localhost:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=2 @192.168.0.1 (Version: 4.1.9, Nodegroup: 0, Master)id=3 @192.168.0.2 (Version: 4.1.9, Nodegroup: 0)[ndb_mgmd(MGM)] 1 node(s)id=1 @192.168.0.3 (Version: 4.1.9)[mysqld(API)] 2 node(s)id=4 (Version: 4.1.9)id=5 (Version: 4.1.9)ndb_mgm>假如上面沒有問題,現在開始測試MySQL:
------分隔線----------------------------