前不久做了下mysql讀寫分離的實驗,也參考了很多的資料,謝謝哪些提供資料的兄弟.
環境: 192.168.100.210
192.168.100.104
192.168.100.208
192.168.100.106
說明: 210,104作為mysql資料庫.
208作為mysql-proxy.
106作為測試機器.
相關軟體下載:
lua
www.lua.org
mysql-proxy
http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/
1. 在208上安裝lua
#tar zxvf lua-5.1.4.tar.gz -C /usr/local
# cd /usr/local
#mv lua-5.1.4 lua
#cd lua
#make //make之後可以看到系統列表,下面的
命令要用到
#make linux //我這裡是linux
#make install
2.安裝mysql-proxy
# tar -zxvf mysql-proxy-0.6.0-linux-rhas4-x86.tar.gz -C /usr/local/
# cd /usr/local/
# mv mysql-proxy-0.6.0-linux-rhas4-x86 mysql-proxy
# export PATH=$PATH:/usr/local/mysql-proxy/sbin/
#mysql-proxy --proxy-read-only-backendaddresses=192.168.100.210:3306
--proxy-backend-addresses=192.168.100.104:3306
--proxy-lua-script=/home2/mysql-proxy-0.6.0-linux-rhas4-x86/share/mysql-proxy/rw-splitting.lua &
3.在210,104上設定許可權
mysql> grant all privileges on backup.* to
[email=backup@'%']backup@'%'[/email]
identified by 'shenxun';
//這裡給個帳號backup,密碼shenxun,讀寫操作的資料庫是backup.
4.進行測試.
用106串連208的mysql-proxy:
/usr/bin/mysql -u backup -pshenxun –P4040 –h 192.168.100.208 –D backup
建立一個表
Create table haha(id int,name char(6));
然後我們到210和104上去看下資料庫的情況,看到210是沒有剛才
寫入的資料庫表,而104是有剛才寫入的資料表的.
現在我們把上面的命令修改下
mysql-proxy --proxy-backend-addresses=192.168.100.210:3306 --proxy-backend- addresses=192.168.100.104:3306 --proxy-lua-script=/home2/mysql-proxy-0.6.0-linux-rhas4- x86/share/mysql-proxy/rw-splitting.lua &
然後我們在208上再重建立個表
Create table xixi(id int,name char(6));
這個時候再到210和104上去看下資料庫的情況,發現2個資料庫都有剛才寫入的資料
庫表.
可以充分說明我們的資料庫讀寫分離已經實現了.