使用mysql-proxy代理實現msyql資料庫讀寫分離

來源:互聯網
上載者:User

標籤:

要實現讀寫分離,可以先看看如何?mysql資料庫主從:http://www.cnblogs.com/sustudy/p/4174189.html

mysql-proxy(要看好對應版本):http://dev.mysql.com/downloads/mysql-proxy/

讀寫分離實驗環境:

  mysql-proxy伺服器的IP地址:192.168.20.3

  主要資料庫的ip地址:192.168.20.4

  從資料庫的ip地址:192.168.20.5

步驟如下:

  1、解壓下載好的mysql-proxy的包

    tar -xzvf mysql-proxy-0.8.5-linux-rhel5-x86-32bit.tar.gz

  2、複製已經解壓好的mysql-proxy的檔案夾到/usr/loca/檔案夾下

    cp -p mysql-proxy-0.8.5-linux-rhel5-x86-32bit mysql-proxy

  3、在/etc檔案夾下建立msql-proxy的設定檔:mysql-proxy.cnf

    vi mysql-proxy.cnf(內容如下:)

    [mysql-proxy]

    admin-username = root############串連主從資料庫的使用者名稱

    admin-password = 123456############串連主從資料庫的密碼

    daemon = true ############daemon進程運行

    keepalive = true############保持串連(啟動進程會有2個,一號進程用來監視二號進行,如果二號進程死掉自動重建,此參數在舊版本中無法使用)

    proxy-backend-addresses = 192.168.20.4:3306 ############mysql主庫(寫)地址

    proxy-read-only-backend-addresses = 192.168.20.5:3306############mysql從庫(讀)地址

    proxy-lua-script = /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua############讀寫分離指令碼

    admin-lua-script = /usr/local/mysql-proxy/share/doc/mysql-proxy/admin-sql.lua############admin指令碼

    log-file = /usr/local/mysql-proxy/cn.log############mysql-proxy的日誌

    log-level = debug

  4、配置環境變數,匯入lua指令碼和添加mysql-proxy的命令

    vi /etc/profile(增加以下內容)

    LUA_PATH="/usr/local/proxy-mysql/share/doc/mysql-proxy/?.lua"

    export LUA_PATH

    export PATH=$PATH:/usr/local/mysql-proxy/bin

    儲存profile檔案,讓修改立即生效,可以輸入命令:source /etc/profile

  5、開啟mysql-proxy代理:

    mysql-proxy --defaults-file=/etc/mysql-proxy.cnf>/usr/local/proxy-mysql/cn.log &

以上5個步驟順利完成,就可以測試了。測試步驟如下:

  1、修改/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua檔案,快速開啟分離。

    if not proxy.global.config.rwsplit then

            proxy.global.config.rwsplit = {

                    min_idle_connections = 1,   #修改最小串連為1

                    max_idle_connections = 2,   #修改最大串連為2,當終端超過2個,就會開啟讀寫分離

                    is_debug = true            #debug為true

            }

    end

  3、即時查看/usr/local/mysql-proxy/cn.log。該日誌記錄著mysql-proxy的情況

    tail -f /usr/local/mysql-proxy/cn.log

  2、開啟兩個終端,串連代理192.168.20.3,有兩個終端就會開啟讀寫分離

    終端一串連:mysql -h192.168.20.3 -uroot -p123456 -P4040

    終端二串連:mysql -h192.168.20.3 -uroot -p123456 -P4040

    這裡的使用者名稱root和密碼123456是主要資料庫和從資料庫的密碼

  4、對終端一進行讀操作,對終端二進行寫操作,進行多次資料庫操作。

  5、此時cn.log就會有變動,就可以看出區別了。

 

該實驗流程是建立在無任何錯誤的情況下,實際中遇到的問題,可以搜尋引擎解決,然後,在進行下一步。

    

 

使用mysql-proxy代理實現msyql資料庫讀寫分離

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.