本文主要講述通過haproxy實現mysql從庫間的負載均衡,至於mysql主從的搭建,本文不再重述,可以參考我之前寫的博客。
1.首先下載haproxy包
wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.13.tar.gz
2.安裝
tar zxvf haproxy-1.4.13.tar.gz cd haproxy-1.4.13/ make TARGET=linux26 PREFIX=/usr/local/haproxy ##我的系統內核為2.6,所以target=linux26 make install PREFIX=/usr/local/haproxy
3.進行配置
mkdir /etc/haproxy touch /etc/haproxy/haproxy.cfg vi /etc/haproxy/haproxy.cfg
##寫入以下內容:
global daemon nbproc 1 pidfile /var/run/haproxy.pid defaults mode tcp #默認的模式mode { tcp|http|health },tcp是4層,http是7層,health只會返回OK retries 2 #兩次連接失敗就認為是服務器不可用,也可以通過后面設置 option redispatch #當serverId對應的服務器掛掉后,強制定向到其他健康的服務器 option abortonclose #當服務器負載很高的時候,自動結束掉當前隊列處理比較久的鏈接 maxconn 4096 #默認的最大連接數 timeout connect 5000ms #連接超時 timeout client 30000ms #客戶端超時 timeout server 30000ms #服務器超時 #timeout check 2000 #=心跳檢測超時 log 127.0.0.1 local0 err #[err warning info debug] ########test1配置################# listen test1 bind 0.0.0.0:3306 mode tcp #maxconn 4086 #log 127.0.0.1 local0 debug server s1 192.168.103.59:3306 server s2 192.168.103.52:3306 ########frontend配置##############
在test1配置下添加server s1 192.168.103.59:3306和server s2 192.168.103.52:3306,即mysql從庫的ip和端口號,
多個從庫在下面繼續添加。
4.啟動haproxy
在
解壓目錄下執行haproxy -f /etc/haproxy/haproxy.cfg

先將占用3306端口的程序停掉
haproxy -f /etc/haproxy/haproxy.cfg
(
若提示錯誤:bash: haproxy: 未找到命令
執行
1 cd /usr/local/haproxy/sbin
2 ./haproxy -f /etc/haproxy/haproxy.cfg

)

5.測試
使用navicat連接安裝haproxy的機器
第一次連的52

關閉連接,重新連103.55

可見實現了mysql的負載均衡。
6.其他注意事項
查看haproxy的進程
ps -ef | grep haproxy

kill -9 28924
干掉haproxy運行的進程

再連55失敗

查看所有進程
ps -ef


修改配置文件:

重新啟動haproxy:
