廢話不說!
Mysql-proxy是什么,大家都知道,不知道的就別往下看了...
首先搭建 mysql 主從數(shù)據(jù)庫,參考: http://blog.csdn.net/swengineer/archive/2011/03/11/6239711.aspx
下載 mysql-proxy 最新版,本文撰寫時最新版本為 MySQL Proxy 0.8.1 alpha
安裝 mysql-proxy 步驟如下:
解壓 mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz
新建或編輯 /etc/mysql-proxy.cnf 文件,添加以下內(nèi)容 ( 具體參數(shù)根據(jù)實際情況修改 ) :
主要參數(shù)注解:
proxy-backend-addresses mysql 主庫(寫)地址
proxy-read-only-backend-addresses mysql 從庫(讀)地址
proxy-lua-script 讀寫分離腳本
admin-lua-script admin 腳本
admin-username 數(shù)據(jù)庫用戶名(主從上都需建立相同用戶)
admin-password 數(shù)據(jù)庫密碼
daemon daemon 進(jìn)程運(yùn)行
keepalive 保持連接(啟動進(jìn)程會有 2 個,一號進(jìn)程用來監(jiān)視二號進(jìn)行,如果二號進(jìn)程死掉自動重建,此參數(shù)在舊版本中無法使用)
編輯 profile/.bash_profile 腳本
為方便建立建立 mysql-proxy.sh 腳本
啟動 mysql-proxy
sh 腳本
啟動: ./mysql-proxy.sh 或 ./mysql-proxy.sh start
重啟: ./mysql-proxy.sh restart
停止: ./mysql-proxy.sh stop
測試:
為達(dá)到測試效果,修改 admin-sql.lua 腳本以下兩行
vi /usr/local/proxy-mysql/share/doc/mysql-proxy/rw-splitting.lua
重啟 mysql-proxy 代理
開啟兩個終端分別連接代理:
ONE : ./mysql -h192.168.0.88 -uzhangdongyu -p123123 -P4040
TWO : ./mysql -h192.168.0.88 -uzhangdongyu -p123123 -P4040
可看到連接成功信息:
操作 ONE 客戶端:
執(zhí)行 select 語句觀察數(shù)據(jù)庫 log 文件
select * from z_member_info;
觀察主從庫日志文件,發(fā)現(xiàn)查詢發(fā)生在主庫?
主庫: 192.168.0.88:3306 日志文件: tail -f /usr/local/mysql/localstate/mysqlexecute.log
這是因為 mysql-proxy 代理會檢測客戶端連接,當(dāng)連接沒有超過 min_idle_connections 預(yù)設(shè)值時,不會進(jìn)行讀寫分離,即查詢操作會發(fā)生到主庫上。
操作 TWO 客戶端:
執(zhí)行 select 語句觀察數(shù)據(jù)庫 log 文件
select * from z_member_info;
觀察主從庫日志文件,發(fā)現(xiàn)主庫沒有任何記錄,查詢?nèi)罩居涗浽趶膸臁?/span>
從庫: 192.168.0.88:3306 日志文件: tail -f /usr/local/mysql3307/localstate/mysqlexecute.log
操作兩個終端進(jìn)行 insert 操作,會發(fā)現(xiàn)寫操作始終被主庫( 3306 )日志文件記錄。
至此 mysql-proxy 安裝測試完成。