mysql-proxy實現mysql的讀寫分離

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,通過得到的數據驗證是否讀寫分離成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章