使用mysql-proxy實現讀寫分離

來源:互聯網
上載者:User

標籤:eve   yum   script   哪些   host   value   連接埠   error   不能   

mysql-proxy實現MySQL讀寫分離使用二進位格式的mysql-proxy的安裝配置
  • mysql-proxy本身並不能進行讀寫分離,要實現讀寫分離要依賴於lua,所以要先查看是否安裝了lua,如果沒有安裝使用yum install安裝上即可

    ~]# rpm -q lualua-5.1.4-4.1.el6.x86_64
  • 建立系統使用者

    useradd -r mysql-proxy
  • 解壓包建立連結檔案

    tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local/ln -s mysql-proxy-0.8.5-linux-el6-x86-64bit/ mysql-proxy
  • 匯出二進位程式

    ~]# vim /etc/profile.d/mysql-proxy.sh內容為:export PATH=/usr/loca/mysql-proxy/bin/:$PATH~]# source  /etc/profile.d/mysql-proxy.sh
  • 查看mysql-proxy用法

    ~]# mysql-proxy --help-all#比較重要的選項有以下幾個--daemon   #讓mysql-proxy在後台工作--user=<user>  #指定運行mysql-proxy進程的屬主--proxy-backend-addresses=<host:port>  #後端伺服器--proxy-read-only-backend-addresses=<host:port>  #只允許讀的後端伺服器--log-level=(error|warning|info|message|debug) #指定記錄層級--log-file=<file> #指定記錄檔路徑--plugins=<name>  #要載入的外掛程式名,外掛程式路徑在/usr/local/mysql-proxy/lib/mysql-proxy/plugins,該路徑下有一個libadmin.so的外掛程式,可以用來管理後端伺服器,還有libproxy.so的外掛程式,啟用proxy的功能--keepalive  #如果proxy崩潰了,就會嘗試去重啟proxy--proxy-lua-script=<file> #指定要使用的lua指令檔,lua指令碼路徑在/usr/local/mysql-proxy/share/doc/mysql-proxy,該路徑下有一個實現讀寫分離的lua指令檔rw-splitting.lua--defaults-file #指定設定檔路徑
  • 啟用mysql-proxy

    ~]# mysql-proxy --daemon > --user=mysql-proxy > --log-level=debug > --log-file=/var/log/mysql-proxy.log > --plugins=proxy > --plugins=admin > --proxy-backend-addresses=172.25.78.2:3306 > --proxy-read-only-backend-addresses=172.25.78.3:3306 > --keepalive=true > --proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua > --admin-username=admin > --admin-password=adminpass > --admin-lua-script=/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua
  • 查看啟用的連接埠
    ]# netstat -tan | grep :40tcp        0      0 0.0.0.0:4040                0.0.0.0:*                   LISTEN      tcp        0      0 0.0.0.0:4041                 0.0.0.0:*                   LISTEN#4041是admin管理介面的連接埠,4040是mysql-proxy的連接埠
串連測試
  • 在Proxy 伺服器上(172.25.78.4)串連到管理介面查看有哪些後端伺服器

    mysql -uadmin -padminpass -h172.25.78.4 --port=4041MySQL [(none)]> SELECT * FROM backends;+-------------+------------------+---------+------+------+-------------------+| backend_ndx | address          | state   | type | uuid | connected_clients |+-------------+------------------+---------+------+------+-------------------+|           1 | 172.25.78.2:3306 | unknown | rw   | NULL |                 0 ||           2 | 172.25.78.3:3306 | unknown | ro   | NULL |                 0 |+-------------+------------------+---------+------+------+-------------------+
  • 在master節點和slave節點上添加測試使用者

    MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE ON *.* TO ‘test‘@‘192.168.182.%‘ IDENTIFIED BY ‘testpass‘;
  • 在用戶端進行測試

    ~]# mysql -utest -ptestpass -h192.168.182.131 -P4040MariaDB [(none)]> SHOW DATABASES;+--------------------+| Database           |+--------------------+| information_schema || MYDB               || S_SC_C             || db_user            || discuz             || dvwa               || hello              || mysql              || performance_schema || test               || testdb             |+--------------------+MariaDB [(none)]> USE S_SC_C;MariaDB [S_SC_C]> INSERT INTO S_1(sname,sdept) VALUES (‘H‘,‘AA‘);MariaDB [S_SC_C]> SELECT * FROM S_1;+-----+-------+-------+| sid | sname | sdept |+-----+-------+-------+|   1 | HELLO | A     ||   2 | HE    | A     ||   3 | H     | AA    |+-----+-------+-------+
  • 在master上查看

    MariaDB [S_SC_C]> SELECT * FROM S_1;+-----+-------+-------+| sid | sname | sdept |+-----+-------+-------+|   1 | HELLO | A     ||   2 | HE    | A     ||   3 | H     | AA    |+-----+-------+-------+
  • 在slave上查看
    MariaDB [S_SC_C]> SELECT * FROM S_1;+-----+-------+-------+| sid | sname | sdept |+-----+-------+-------+|   1 | HELLO | A     ||   2 | HE    | A     ||   3 | H     | AA    |+-----+-------+-------+

使用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.