mysql代理服務器功能,實現mysql讀寫分離,把用戶不同的請求發送給不同的服務器。
mysql-server1:192.168.70.129
mysql-server2:192.168.70.132
mysql-proxy:192.168.70.133
將mysql-proxy解壓
[root@localhost 桌面]# tar zxf mysql-proxy-0.8.3-linux-rhel5-x86-64bit.tar.gz -C /usr/local/ [root@localhost 桌面]# cd /usr/local/ [root@localhost local]# ls bin games lib libexec sbin src etc include lib64 mysql-proxy-0.8.3-linux-rhel5-x86-64bit share [root@localhost local]# mv mysql-proxy-0.8.3-linux-rhel5-x86-64bit mysqlproxy [root@localhost local]# cd mysqlproxy/ [root@localhost mysqlproxy]# ls bin include lib libexec licenses share [root@localhost mysqlproxy]# ls bin mysql-binlog-dump mysql-myisam-dump mysql-proxy(啓動腳本) [root@localhost mysqlproxy]# ls share/doc/mysql-proxy/(區分用戶讀寫請求的腳本)都是用lua語言編寫 active-queries.lua ro-balance.lua tutorial-resultset.lua active-transactions.lua ro-pooling.lua tutorial-rewrite.lua admin-sql.lua rw-splitting.lua(讀寫分離)tutorial-routing.lua analyze-query.lua tutorial-basic.lua tutorial-scramble.lua auditing.lua tutorial-constants.lua tutorial-states.lua commit-obfuscator.lua tutorial-inject.lua tutorial-tokenize.lua commit-obfuscator.msc tutorial-keepalive.lua tutorial-union.lua COPYING tutorial-monitor.lua tutorial-warnings.lua histogram.lua tutorial-packets.lua xtab.lua load-multi.lua tutorial-prep-stmts.lua README tutorial-query-time.lua
給讀寫讀寫分離文件執行的權限
[root@localhost mysql-proxy]# ls -l rw-splitting.lua -rw-r--r-- 1 7157 wheel 11341 8月 6 2012 rw-splitting.lua [root@localhost mysql-proxy]# chmod +x rw-splitting.lua
啓動腳本所在目錄
[root@localhost bin]# ls mysql-binlog-dump mysql-myisam-dump mysql-proxy
./mysql-proxy 選項
-P:指定代理監聽的IP地址、端口
-r :指定讀服務器的IP地址、端口
-b:指定寫服務器的IP地址、端口
-s:指定lua腳本文件的路徑
--keepalive: 若進程崩潰,自動重啓此進程
啓動mysql-proxy服務,啓動時檢查本機3306端口是否被佔用。
[root@localhost bin]# ./mysql-proxy -P 192.168.70.133:3306 -r 192.168.70.132:3306 -b 192.168.70.129:3306 -s /usr/local/mysqlproxy/share/doc/mysql-proxy/rw-splitting.lua --keepalive & [root@localhost bin]# 2014-03-21 11:00:50: (critical) plugin proxy 0.8.3 started
查看服務是否已啓動
[root@localhost bin]# jobs
[1]+ Running ./mysql-proxy -P 192.168.70.133:3306 -r 192.168.70.132:3306 -b 192.168.70.129:3306 -s /usr/local/mysqlproxy/share/doc/mysql-proxy/rw-splitting.lua --keepalive &
[root@localhost bin]# netstat -anutp | grep :3306
tcp 0 0 192.168.70.133:3306 0.0.0.0:* LISTEN 5140/mysql-proxy
驗證,在兩臺mysql服務器上建立一個表插入不同的數據,並在兩個服務器上做相同的授權,在客戶端執行mysql -uroot -h192.168.70.133 -p,通過得到的數據驗證是否讀寫分離成功。