MYSQL主從複製與讀寫分離(MariaDB)

來源:互聯網
上載者:User

標籤:mysql 主從複製 讀寫分離 (mariadb)

MYSQL主:192.168.26.210(centos6.6,Mariadb10)

MYSQL從:192.168.26.211(centos6.6,Mariadb10)

讀寫分離器mysql-proxy:192.168.26.212

主:mysql設定檔編輯:

 vim /etc/my.cnf.d/server.cnf

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/8C/29/wKioL1hkZcuxBx87AAAG8lxYgW4066.png-wh_500x0-wm_3-wmp_4-s_2906837876.png" title="1.png" alt="wKioL1hkZcuxBx87AAAG8lxYgW4066.png-wh_50" />

設定檔中加入以下兩項:

log-bin=mysql-bin

server-id       = 210

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/8C/29/wKioL1hkZjPxwZafAAAdEF2HK6A084.png-wh_500x0-wm_3-wmp_4-s_862373779.png" title="2.png" alt="wKioL1hkZjPxwZafAAAdEF2HK6A084.png-wh_50" />

從:mysql設定檔編輯:

 vim /etc/my.cnf.d/server.cnf

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/8C/2D/wKiom1hkZk3CvrYEAAAPHEMvtlk255.png-wh_500x0-wm_3-wmp_4-s_3525250367.png" title="3.png" alt="wKiom1hkZk3CvrYEAAAPHEMvtlk255.png-wh_50" />

設定檔中加入以下兩項:

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/8C/29/wKioL1hkZmvAHEkLAAAq59S8d8Q145.png-wh_500x0-wm_3-wmp_4-s_789161894.png" title="4.png" alt="wKioL1hkZmvAHEkLAAAq59S8d8Q145.png-wh_50" />

讀寫分離調度器:mysql-proxy(0.8.5版本)

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/8C/2D/wKiom1hkZpegZle1AAAsJCx0MtQ592.png-wh_500x0-wm_3-wmp_4-s_396882799.png" title="5.png" alt="wKiom1hkZpegZle1AAAsJCx0MtQ592.png-wh_50" />

直接YUM安裝:yum list  msyql-proxy

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/8C/29/wKioL1hkZrvSW3bJAAAScaV8v6c995.png-wh_500x0-wm_3-wmp_4-s_3758647507.png" title="6.png" alt="wKioL1hkZrvSW3bJAAAScaV8v6c995.png-wh_50" />

mysql-proxy安裝完成後編輯設定檔:vim /etc/mysql-proxy

[mysql-proxy]

daemon = true

pid-file = /var/run/mysql-proxy.pid

log-file = /var/log/mysql-proxy.log

log-level = debug

max-open-files = 1024

plugins = admin,proxy

user = mysql-proxy

#

#Proxy Configuration

proxy-address = 0.0.0.0:3306    #分離器地址預設本是4040,若本機安裝了MYSQL則改用其它連接埠

proxy-backend-addresses =192.168.26.210:3306       #可讀寫伺服器位址

proxy-read-only-backend-addresses = 192.168.26.211:3306  #唯讀伺服器位址列表,多台伺服器用,分隔

proxy-lua-script = /usr/share/doc/mysql-proxy-0.8.5/examples/rw-splitting.lua     #指定讀寫分離指令碼路徑位置

proxy-skip-profiling = true

#

# Admin Configuration

admin-address = 0.0.0.0:4041  #管理地址

admin-lua-script = /usr/lib64/mysql-proxy/lua/admin.lua   #mysql-proxy不對使用者做身分識別驗證,而是下身分識別驗證交予後端伺服器進行驗證的,因此需要在後端伺服器上對mysql-proxy開放許可權

admin-username = admin #管理帳號

admin-password = admin  #管理密碼

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/8C/2D/wKiom1hkZu6gWubAAABlFl6f45Q698.png-wh_500x0-wm_3-wmp_4-s_2428972646.png" title="7.png" alt="wKiom1hkZu6gWubAAABlFl6f45Q698.png-wh_50" />

儲存退出,記得加入開機服務啟動項:chkconfig mysql-proxy on

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/8C/2D/wKiom1hkZx2RXW82AAAQBhaU1ek491.png-wh_500x0-wm_3-wmp_4-s_3680503793.png" title="8.png" alt="wKiom1hkZx2RXW82AAAQBhaU1ek491.png-wh_50" />

說明下:YUM安裝後lua指令碼路徑: /usr/share/doc/mysql-proxy-0.8.5/examples/rw-splitting.lua 

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/8C/29/wKioL1hkZ6aC3ee4AABjk_3ax-c083.png-wh_500x0-wm_3-wmp_4-s_1668792063.png" title="9.png" alt="wKioL1hkZ6aC3ee4AABjk_3ax-c083.png-wh_50" />

 admin.lua指令碼路徑: /usr/lib64/mysql-proxy/lua/admin.lua 

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/8C/29/wKioL1hkZ-qC0dmCAAAzKo-NCmw253.png-wh_500x0-wm_3-wmp_4-s_1039321452.png" title="10.png" alt="wKioL1hkZ-qC0dmCAAAzKo-NCmw253.png-wh_50" />

啟動服務:service mysql-proxy start

用管理帳號登陸mysql-proxy

mysql -uadmin -padmin -h192.168.26.212 --port=4041


650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/8C/2D/wKiom1hkaAzAxBrdAABUl9vGZ08463.png-wh_500x0-wm_3-wmp_4-s_1248001696.png" title="11.png" alt="wKiom1hkaAzAxBrdAABUl9vGZ08463.png-wh_50" />

執行命令查看:SELECT * FROM backends;

兩台伺服器主和從都已經添加進mysql-proxy,主伺服器rw表示可讀寫,ro表示唯讀。

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/8C/2D/wKiom1hkaGiQqfNQAABY7O8B6U4261.png-wh_500x0-wm_3-wmp_4-s_1309516406.png" title="12.png" alt="wKiom1hkaGiQqfNQAABY7O8B6U4261.png-wh_50" />

再回到主伺服器:192.168.26.210建立一個訪問帳號和密碼,供測試使用。

grant all on *.* to ‘bdadmin‘@‘192.168.%.%‘ IDENTIFIED BY ‘jerrypass‘;

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/8C/29/wKioL1hkboygdIkPAAA_2d3FvoU819.png-wh_500x0-wm_3-wmp_4-s_1638008923.png" title="13.png" alt="wKioL1hkboygdIkPAAA_2d3FvoU819.png-wh_50" />

為了測試效果可以用tcpdump進行抓包觀察效果:

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/8C/29/wKioL1hkbquTYIUoAAB_NuvZB24806.png-wh_500x0-wm_3-wmp_4-s_923208088.png" title="14.png" alt="wKioL1hkbquTYIUoAAB_NuvZB24806.png-wh_50" />

任一找一台同網路中的主機登陸mysql伺服器(210,211,212都可以,注意登陸時連接埠號碼,這裡我是我手動

改為3306了的):


650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/8C/2D/wKiom1hkbuTg3KrrAAAXit09Vzs701.png-wh_500x0-wm_3-wmp_4-s_489644619.png" title="15.png" alt="wKiom1hkbuTg3KrrAAAXit09Vzs701.png-wh_50" />

執行建立資料庫操作:

create database bdtest;

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/8C/29/wKioL1hkbvzTYpEWAABAkkuWDvI275.png-wh_500x0-wm_3-wmp_4-s_2564341645.png" title="16.png" alt="wKioL1hkbvzTYpEWAABAkkuWDvI275.png-wh_50" />
觀察狀態:

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/8C/2D/wKiom1hkbyaTQTuiAABq7uR9Plg126.png-wh_500x0-wm_3-wmp_4-s_2364889196.png" title="17.png" alt="wKiom1hkbyaTQTuiAABq7uR9Plg126.png-wh_50" />

1 台主多台從配置:

[mysql-proxy]

daemon = true

pid-file = /var/run/mysql-proxy.pid

log-file = /var/log/mysql-proxy.log

log-level = debug

max-open-files = 1024

plugins = admin,proxy

user = mysql-proxy

#

#Proxy Configuration

proxy-address = 0.0.0.0:3306

proxy-backend-addresses = 192.168.26.210:3306

proxy-read-only-backend-addresses = 192.168.26.211:3306,192.168.26.212:3306

proxy-lua-script = /usr/share/doc/mysql-proxy-0.8.5/examples/rw-splitting.lua

#proxy-skip-profiling = true

#

# Admin Configuration

#admin-address = 0.0.0.0:4041

admin-lua-script = /usr/lib64/mysql-proxy/lua/admin.lua

admin-username = admin

admin-password = admin

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/8C/29/wKioL1hkb0Cj7K_WAABtOefdyJA668.png-wh_500x0-wm_3-wmp_4-s_394172906.png" title="18.png" alt="wKioL1hkb0Cj7K_WAABtOefdyJA668.png-wh_50" />

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/8C/2D/wKiom1hkb1zQH9deAABmvCBelhw967.png-wh_500x0-wm_3-wmp_4-s_4033125086.png" title="19.png" alt="wKiom1hkb1zQH9deAABmvCBelhw967.png-wh_50" />650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/8C/29/wKioL1hkb2HAVeLJAAAp9enz2iQ084.png-wh_500x0-wm_3-wmp_4-s_701949931.png" title="20.png" alt="wKioL1hkb2HAVeLJAAAp9enz2iQ084.png-wh_50" />

特別提示,測試中需要多執行幾次查詢(因為操作要受串連數限制)操作,才能更好的觀察效果。

本文出自 “在路上……找回丟失的記憶” 部落格,請務必保留此出處http://jdonghong.blog.51cto.com/3473478/1887164

MYSQL主從複製與讀寫分離(MariaDB)

聯繫我們

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