MySQL Proxy最壯大的一項功能是告終“讀寫離別(Read/Write Splitting)”。它的原理是讓主數據庫處理事務性查詢,而從數據庫處理SELECT查詢。數據庫復制被用來把事務性查詢導致的改變同步到集群中的從數據庫。
0.必備軟件:
1、LUA
能夠去LUA的官方下載:dpa.nsysu.edu.tw/Downloads/MySQL-Proxy/。
可能去MYSQL官方下載源代碼。
我這里下載了:
mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/mysql-proxy-0.6.0.tar.gz
3、測驗過程中廢止了B和C的REPLICATION。這么SQL語句一下子就看出來從哪里來的。
萬一是M-S(能夠先在SLAVE上舉行STOP SLAVE)
1. 安裝
下載已經編譯好的安裝包,或者預編譯安裝包均可,在這里,使用預編譯版本。
| [@s1.yejr.com ~]# tar zxf mysql-proxy-0.6.0-linux-rhas4-x86.tar.gz[@s1.yejr.com ~]# cd mysql-proxy-0.6.0-linux-rhas4-x86#可以看到有2個目錄[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# lssbin share[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# mv sbin/mysql-proxy /usr/local/sbin/[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# ls sharemysql-proxy tutorial-constants.lua tutorial-packets.lua tutorial-rewrite.lua tutorial-warnings.luatutorial-basic.lua tutorial-inject.lua tutorial-query-time.lua tutorial-states.lua#將lua腳本放到/usr/local/share下,以備他用[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# mv share/mysql-proxy /usr/local/share/#刪除符號連接等垃圾代碼[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# strip /usr/local/sbin/mysql-proxy |
2. 啟動
編譯一下啟動管理腳本:
| [@s1.yejr.com ~]# vi /etc/init.d/mysql-proxy#!/bin/shexport LUA_PATH=/usr/local/share/mysql-proxy/?.luamode=$1if [ -z "$mode" ] ; then mode="start"ficase $mode in 'start') mysql-proxy --daemon /--admin-address=:4401 /--proxy-address=:3307 /--proxy-backend-addresses=:3306 /--proxy-read-only-backend-addresses=192.168.133.232:3306 /--proxy-read-only-backend-addresses=10.10.74.61:3306 /--proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua ;; 'stop') killall mysql-proxy ;; 'restart') if $0 stop ; then $0 start else echo "retart failed!!!" exit 1 fi ;;esacexit 0 |
現在解釋一下啟動腳本:
--daemon 采用daemon方式啟動
--admin-address=:4401 指定mysql proxy的管理端口,在這里,表示本機的4401端口
--proxy-address=:3307 指定mysql proxy的監聽端口,也可以用 127.0.0.1:3307 表示
--proxy-backend-addresses=:3306 指定mysql主機的端口
--proxy-read-only-backend-addresses=192.168.1.1:3306 指定只讀的mysql主機端口
--proxy-read-only-backend-addresses=192.168.1.2:3306 指定另一個只讀的mysql主機端口
--proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua 指定lua腳本,在這里,使用的是rw-splitting腳本,用于讀寫分離
新聞熱點
疑難解答