標籤:
要實現讀寫分離,可以先看看如何?mysql資料庫主從:http://www.cnblogs.com/sustudy/p/4174189.html
mysql-proxy(要看好對應版本):http://dev.mysql.com/downloads/mysql-proxy/
讀寫分離實驗環境:
mysql-proxy伺服器的IP地址:192.168.20.3
主要資料庫的ip地址:192.168.20.4
從資料庫的ip地址:192.168.20.5
步驟如下:
1、解壓下載好的mysql-proxy的包
tar -xzvf mysql-proxy-0.8.5-linux-rhel5-x86-32bit.tar.gz
2、複製已經解壓好的mysql-proxy的檔案夾到/usr/loca/檔案夾下
cp -p mysql-proxy-0.8.5-linux-rhel5-x86-32bit mysql-proxy
3、在/etc檔案夾下建立msql-proxy的設定檔:mysql-proxy.cnf
vi mysql-proxy.cnf(內容如下:)
[mysql-proxy]
admin-username = root############串連主從資料庫的使用者名稱
admin-password = 123456############串連主從資料庫的密碼
daemon = true ############daemon進程運行
keepalive = true############保持串連(啟動進程會有2個,一號進程用來監視二號進行,如果二號進程死掉自動重建,此參數在舊版本中無法使用)
proxy-backend-addresses = 192.168.20.4:3306 ############mysql主庫(寫)地址
proxy-read-only-backend-addresses = 192.168.20.5:3306############mysql從庫(讀)地址
proxy-lua-script = /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua############讀寫分離指令碼
admin-lua-script = /usr/local/mysql-proxy/share/doc/mysql-proxy/admin-sql.lua############admin指令碼
log-file = /usr/local/mysql-proxy/cn.log############mysql-proxy的日誌
log-level = debug
4、配置環境變數,匯入lua指令碼和添加mysql-proxy的命令
vi /etc/profile(增加以下內容)
LUA_PATH="/usr/local/proxy-mysql/share/doc/mysql-proxy/?.lua"
export LUA_PATH
export PATH=$PATH:/usr/local/mysql-proxy/bin
儲存profile檔案,讓修改立即生效,可以輸入命令:source /etc/profile
5、開啟mysql-proxy代理:
mysql-proxy --defaults-file=/etc/mysql-proxy.cnf>/usr/local/proxy-mysql/cn.log &
以上5個步驟順利完成,就可以測試了。測試步驟如下:
1、修改/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua檔案,快速開啟分離。
if not proxy.global.config.rwsplit then
proxy.global.config.rwsplit = {
min_idle_connections = 1, #修改最小串連為1
max_idle_connections = 2, #修改最大串連為2,當終端超過2個,就會開啟讀寫分離
is_debug = true #debug為true
}
end
3、即時查看/usr/local/mysql-proxy/cn.log。該日誌記錄著mysql-proxy的情況
tail -f /usr/local/mysql-proxy/cn.log
2、開啟兩個終端,串連代理192.168.20.3,有兩個終端就會開啟讀寫分離
終端一串連:mysql -h192.168.20.3 -uroot -p123456 -P4040
終端二串連:mysql -h192.168.20.3 -uroot -p123456 -P4040
這裡的使用者名稱root和密碼123456是主要資料庫和從資料庫的密碼
4、對終端一進行讀操作,對終端二進行寫操作,進行多次資料庫操作。
5、此時cn.log就會有變動,就可以看出區別了。
該實驗流程是建立在無任何錯誤的情況下,實際中遇到的問題,可以搜尋引擎解決,然後,在進行下一步。
使用mysql-proxy代理實現msyql資料庫讀寫分離