MySQL負載均衡的安裝設定實錄
MySQL的使用受到廣大技術人員的喜愛,它的簡便操作,低成本和高速運轉成為它快速普及的基礎。那么針對這個軟件的負載均衡設置是接下來我們重點介紹的內容。當然在安裝之前我們需要吧環境和系統都介紹一下。
一、安裝明細
測試環境:
Server1:ndbd 192.168.0.11
Server2:ndbd 192.168.0.12
Server3:mysqld --ndb-cluster 192.168.0.13 (ndbd_mgm ndbd_mgmd也在本機)
操作系統均為
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
下載時注意系統環境和軟件包版本,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上創建日志文件夾,默認
# mkdir /var/lib/mysql-cluster
4.在Server3上創建ndb_mgmd啟動配置文件:
- # mkdir /var/lib/mysql-cluster
- # cd /var/lib/mysql-cluster
- # vi config.ini
- 內容如下:
- # 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服務器從任何IP訪問數據庫結點。
三、啟動負載均衡服務
- Server3 /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
- Server1 /usr/local/mysql/bin/ndbd --initial #只在***次啟動ndbd時使用--initial參數
- Server2 /usr/local/mysql/bin/ndbd --initial
- Server3 /usr/local/mysql/support-files/mysql.Server start
#p#四、檢查工作狀態
回到管理節點服務器Server3上,并啟動管理終端:
- # /usr/bin/ndb_mgm
- 鍵入show命令查看當前工作狀態:(下面是一個狀態輸出示例)
- 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服務器節點。當前只有Server3 MySQL啟動。
如果上面沒有問題,現在開始測試MySQL:
注意,這篇文檔對于MySQL并沒有設置root密碼,推薦你自己設置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;
- 應該可以看到1 row returned信息(返回數值1)。
如果上述正常,則換到Server1、Server2上重復上面的測試,觀察效果,數據庫應該是同步刷新的。但首先要啟動這兩臺機器的MySQL服務
# /usr/local/mysql/support-files/mysql.Server start
如果都沒有問題,那么恭喜成功!
FAQ:
失敗原因,可能是啟動順序不對。
查找所有ndb和sql相關進程,殺掉,重新按順序來。
ps -aux |grep ndb
ps -aux |grep sql
kill -9 <PID> <PID> ...<PID>
五、破壞性測試
將Server1或Server2的網線拔掉,觀察另外一臺集群服務器工作是否正常(可以使用SELECT查詢測試)。測試完畢后,重新插入網線即可。
如果你接觸不到物理服務器,也就是說不能拔掉網線,那也可以這樣測試:在Server1或Server2上:ifconfig eth0 down #如果只有一塊網卡,默認是eth0
之后在Server3上使用SELECT查詢測試。并且在管理節點服務器的管理終端中執行show命令會看到被破壞的那臺服務器的狀態。測試完成后,只需要重新啟動被破壞服務器的ndbd進程即可:# ndbd
注意:前面說過了,此時是不用加--inital參數的!至此,MySQL集群就配置完成,MySQL負載均衡功能完成!如想實現Apache+PHP+MySQL集群負載均衡,只需Server3上安裝Apache+PHP,并添加Server4,與其做LVS即可。