MySQL負載均衡的安裝設(shè)定實錄
MySQL的使用受到廣大技術(shù)人員的喜愛,它的簡便操作,低成本和高速運轉(zhuǎn)成為它快速普及的基礎(chǔ)。那么針對這個軟件的負載均衡設(shè)置是接下來我們重點介紹的內(nèi)容。當然在安裝之前我們需要吧環(huán)境和系統(tǒng)都介紹一下。
一、安裝明細
測試環(huán)境:
Server1:ndbd 192.168.0.11
Server2:ndbd 192.168.0.12
Server3:mysqld --ndb-cluster 192.168.0.13 (ndbd_mgm ndbd_mgmd也在本機)
操作系統(tǒng)均為
RH ES3
kernel-2.4.21-9.EL
glibc-2.3.2-95.6
所需軟件包:
mysql-max-5.0.22-linux-i686-icc-glibc23.tar.gz
下載地址:http://dev.mysql.com/downloads/mysql/5.0.html
下載時注意系統(tǒng)環(huán)境和軟件包版本,MySQL是max版的。
1.安裝:
- # mv mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/
 - # cd /usr/local/
 - # tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
 - # ln -s mysql-max-4.1.9-pc-linux-gnu-i686 mysql
 - # groupadd mysql
 - # useradd -g mysql mysql
 - # cd mysql
 - # scripts/mysql_install_db --user=mysql
 - # chown -R mysql:mysql .
 
2.編輯配置文件:
- # cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
 - # vi /etc/my.cnf 在文件尾加入
 - # my.cnf
 - # example additions to my.cnf for MySQL Cluster
 - # (valid in MySQL 5.0)
 - # enable ndbcluster storage engine, and provide connectstring for
 - # management Server host (default port is 1186)
 - [mysqld]
 - ndbcluster
 - ndb-connectstring=192.168.0.13
 - # provide connectstring for management Server host (default port: 1186)
 - [ndbd]
 - connect-string=192.168.0.13
 - # provide connectstring for management Server host (default port: 1186)
 - [ndb_mgm]
 - connect-string=192.168.0.13
 - # provide location of cluster configuration file
 - [ndb_mgmd]
 - config-file=/var/lib/mysql-cluster
 
保存&退出
#p#3.在Server1、Server2上創(chuàng)建日志文件夾,默認
# mkdir /var/lib/mysql-cluster
4.在Server3上創(chuàng)建ndb_mgmd啟動配置文件:
- # mkdir /var/lib/mysql-cluster
 - # cd /var/lib/mysql-cluster
 - # vi config.ini
 - 內(nèi)容如下:
 - # file "config.ini" - 2 data nodes and 2 SQL nodes
 - # This file is placed in the startup directory of ndb_mgmd (the
 - # management server)
 - # The first MySQL Server can be started from any host. The second
 - # can be started only on the host mysqld_5.mysql.com
 - [NDBD DEFAULT]
 - NoOfReplicas= 2
 - DataDir= /var/lib/mysql-cluster
 - [NDB_MGMD]
 - Hostname= 192.168.0.13
 - DataDir= /var/lib/mysql-cluster
 - [NDBD]
 - HostName= 192.168.0.11
 - [NDBD]
 - HostName= 192.168.0.12
 - [MYSQLD]
 - [MYSQLD]
 - [MYSQLD]
 
保存&退出
[MYSQLD]
[MYSQLD]
[MYSQLD]
表示允許有三臺MySQL服務(wù)器從任何IP訪問數(shù)據(jù)庫結(jié)點。
三、啟動負載均衡服務(wù)
- Server3 /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
 - Server1 /usr/local/mysql/bin/ndbd --initial #只在***次啟動ndbd時使用--initial參數(shù)
 - Server2 /usr/local/mysql/bin/ndbd --initial
 - Server3 /usr/local/mysql/support-files/mysql.Server start
 
#p#四、檢查工作狀態(tài)
回到管理節(jié)點服務(wù)器Server3上,并啟動管理終端:
- # /usr/bin/ndb_mgm
 - 鍵入show命令查看當前工作狀態(tài):(下面是一個狀態(tài)輸出示例)
 - ndb_mgm> show
 - Cluster Configuration
 - ---------------------
 - [ndbd(NDB)] 2 node(s)
 - id=2 (not connected, accepting connect from 192.168.0.11)
 - id=3 @192.168.0.12 (Version: 5.0.22, Nodegroup: 0, Master)
 - [ndb_mgmd(MGM)] 1 node(s)
 - id=1 @192.168.0.13 (Version: 5.0.22)
 - [mysqld(API)] 3 node(s)
 - id=4 @192.168.0.13 (Version: 5.0.22)
 - id=5 (not connected, accepting connect from any host)
 - id=6 (not connected, accepting connect from any host)
 - mysqld(API)即mysqld --ndb-cluster,MySQL服務(wù)器節(jié)點。當前只有Server3 MySQL啟動。
 
如果上面沒有問題,現(xiàn)在開始測試MySQL:
注意,這篇文檔對于MySQL并沒有設(shè)置root密碼,推薦你自己設(shè)置Server1、Server2、Server3的MySQL root密碼。
在Server3中:
- # /usr/local/mysql/bin/mysql
 - > use test;
 - > CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
 - > INSERT INTO ctest () VALUES (1);
 - > SELECT * FROM ctest;
 - 應(yīng)該可以看到1 row returned信息(返回數(shù)值1)。
 
如果上述正常,則換到Server1、Server2上重復上面的測試,觀察效果,數(shù)據(jù)庫應(yīng)該是同步刷新的。但首先要啟動這兩臺機器的MySQL服務(wù)
# /usr/local/mysql/support-files/mysql.Server start
如果都沒有問題,那么恭喜成功!
FAQ:
失敗原因,可能是啟動順序不對。
查找所有ndb和sql相關(guān)進程,殺掉,重新按順序來。
ps -aux |grep ndb
ps -aux |grep sql
kill -9 <PID> <PID> ...<PID>
五、破壞性測試
將Server1或Server2的網(wǎng)線拔掉,觀察另外一臺集群服務(wù)器工作是否正常(可以使用SELECT查詢測試)。測試完畢后,重新插入網(wǎng)線即可。
如果你接觸不到物理服務(wù)器,也就是說不能拔掉網(wǎng)線,那也可以這樣測試:在Server1或Server2上:ifconfig eth0 down #如果只有一塊網(wǎng)卡,默認是eth0
之后在Server3上使用SELECT查詢測試。并且在管理節(jié)點服務(wù)器的管理終端中執(zhí)行show命令會看到被破壞的那臺服務(wù)器的狀態(tài)。測試完成后,只需要重新啟動被破壞服務(wù)器的ndbd進程即可:# ndbd
注意:前面說過了,此時是不用加--inital參數(shù)的!至此,MySQL集群就配置完成,MySQL負載均衡功能完成!如想實現(xiàn)Apache+PHP+MySQL集群負載均衡,只需Server3上安裝Apache+PHP,并添加Server4,與其做LVS即可。















 
 
 
 
 
 
 