mysql-proxy 實現讀寫分離

來源:互聯網
上載者:User

標籤:mysql-proxy 實現讀寫分離

mysql-proxy 實現讀寫分離

需要先配置主從同步:五個步驟完成MySQL主從複製

主伺服器Master:192.168.179.146從伺服器Slave:192.168.179.147調度伺服器MySQL-Proxy:192.168.179.142
下載mysql-proxy

實現讀寫分離是有lua指令碼實現的,現在mysql-proxy裡面已經整合,無需再安裝

下載:https://downloads.mysql.com/archives/proxy/ 下載對應的版本

我這裡以CentOS6 64位伺服器為例

安裝mysql-proxy

我這邊為了方便使用 wget 命令下載,然後拷貝到/usr/local/下並修改目錄名為mysql-proxy。

wget https://cdn.mysql.com/archives/mysql-proxy/mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz tar zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit.tar.gzmv mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit /usr/local/mysql-proxy
配置mysql-proxy

建立mysql-proxy指令碼和記錄檔存放的目錄,並把內建的管理指令碼考本過來。

cd /usr/local/mysql-proxymkdir lua  #建立指令碼存放目錄mkdir logs #建立日誌目錄cp share/doc/mysql-proxy/rw-splitting.lua ./lua  #複製讀寫分離設定檔cp share/doc/mysql-proxy/admin-sql.lua ./lua     #複製管理指令碼
建立mysql-proxy設定檔vim /etc/mysql-proxy.cnf #建立設定檔
[mysql-proxy]user=root            #運行mysql-proxy使用者admin-username=lin3615    #主從mysql共有的使用者admin-password=123456     #使用者的密碼proxy-address=192.168.179.142:4040     #mysql-proxy運行ip和連接埠(預設連接埠4040)proxy-read-only-backend-addresses=192.168.179.147     #指定後端從slave讀取資料(預設連接埠3306)proxy-backend-addresses=192.168.179.146                      #指定後端主master寫入資料(預設連接埠3306)proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua #指定讀寫分離設定檔位置admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua  #指定管理指令碼log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log           #日誌位置log-level=info      #定義log記錄層級,由高到低分別有(error|warning|info|message|debug)daemon=true      #以守護進程方式運行keepalive=true   #mysql-proxy崩潰時,嘗試重啟

:wq #儲存退出!
chmod 660 /etc/mysql-porxy.cnf

修改讀寫分離設定檔vim /usr/local/mysql-proxy/lua/rw-splitting.lua
if not proxy.global.config.rwsplit then    proxy.global.config.rwsplit = {        min_idle_connections = 1, #預設超過4個串連數時,才開始讀寫分離,改為1        max_idle_connections = 1, #預設8,改為1        is_debug = false }end
啟動mysql-proxy
/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/etc/mysql-proxy.cnf  #指定我們建立的/etc/mysql-proxy.cnf設定檔啟動netstat -tupln | grep 4040   #已經啟動killall -9 mysql-proxy           #關閉mysql-proxy使用
測試讀寫分離
在主伺服器建立proxy使用者用於mysql-proxy使用,從伺服器也會同步這個操作mysql> grant all on *.* to ‘lin3615‘@‘192.168.179.142‘ identified by ‘123456‘;使用用戶端串連mysql-proxymysql -u lin3615 -h 192.168.179.142 -P 4040 -p123456

mysql-proxy 實現讀寫分離

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.