MySQL5.6 讀寫分離




一:讀寫分離架構圖

二:安裝配置MySQL-Proxy

三:測試讀寫分離

四:添加MySQL-Proxy 爲系統服務




1.1讀寫分離架構圖

wKioL1WjfhzArmSjAAE9ki7AwYI130.jpg

1.Slave-1不接收寫,也不接收讀


2.Slave-1有中繼日誌,也有二進制日誌,因爲它需要接收Slave-1發送過來的數據,又要把數據發送給其它從服務器,但是它不需要存儲數據。


3.因爲Slave-1不需要存儲數據,所以使用black hole存儲引擎





2.1下載MySQL-Proxy

http://dev.mysql.com/downloads/mysql-proxy/

wKiom1WjfLHTlgIjAADOkGZgN4c771.jpg




2.2解壓縮,並剪切到/usr/local下

# tar xf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz

# mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy

# useradd -r mysql-proxy

# chown -R root.mysql-proxy mysql-proxy/


 

 

 

2.3添加bin目錄到$PATH中

# vi /etc/profile.d/mysql-proxy.sh

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

# . /etc/profile.d/mysql-proxy.sh




2.4參數說明

2.4.1代理相關的參數

-P, --proxy-address=<host:port> 工作在哪個端口上

-r,--proxy-read-only-backend-addresses=<host:port>   只讀後端

-b,--proxy-backend-addresses=<host:port> 可讀可寫的後端

--proxy-connect-timeout  連接超時時間

--proxy-read-timeout  讀超時時間

--proxy-write-timeout 寫超時時間

-s, --proxy-lua-script=<file>  爲了實現代理功能,lua腳本的文件路徑




2.4.2管理相關的參數

--admin-address=host:port:指定管理員主機及服務端口,默認值爲localhost:4041

--admin-lua-script=script_file:指定管理模塊的lua腳本文件

--admin-username=user:指定登錄到mysql-proxy管理界面的用戶名

--admin-password=pass:指定登錄到mysql-proxy管理界面的用戶密碼




2.4.3應用本身的參數

--defaults-file=<file> 默認讀取的配置文件

--daemon 以守護進程模式運行

--user=<user> 用戶




2.5啓動MySQL-Proxy,並查看log日誌

mysql-proxy 
--daemon 
--log-level=debug 
--log-file=/var/log/mysql-proxy.log 
--plugins='proxy'  
--proxy-backend-addresses='192.168.1.112:3306'
--proxy-read-only-backend-addresses='192.168.1.113:3306'
--proxy-lua-script='/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua'
--plugins='admin' 
--admin-username='admin' 
--admin-password='admin'   
--admin-lua-script='/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua'

wKiom1WjfZTgdsGcAAFMZbdJPoA358.jpg





3.1客戶端測試,刪除任意一個數據庫,然後查看是在哪臺服務器上執行的

wKiom1WjfdXhkaUlAAETN5Ws1Mg074.jpg

wKioL1Wjf6yS8Ky2AACenX8T7s8350.jpg



mysql> DROP DATABASE b3;



wKiom1WjfhazcAnCAAC1uYp3P-o315.jpg

wKiom1Wjfhbimk_5AADKGxOL4kg200.jpg

wKioL1Wjf-3TU3eTAAFtYMMlO5A671.jpg





3.2客戶端測試,執行查詢操作,再次查看執行是在哪臺服務器上

wKiom1Wjfr2B8ftKAADi3yDpK78773.jpg

wKiom1Wjfr6T0lBqAADDf3iKEV8782.jpg






3.3 修改rw-splitting.lua文件

wKioL1WjgKvRSDfOAACS_Hgi9_I950.jpg

修改默認連接數,如果不修改連接數的話要達到連接數爲4時纔會啓用讀寫分離






4.1在/etc/rc.d/init.d/目錄下創建mysql-proxy文件

# vi /etc/rc.d/init.d/mysql-proxy

# chmod +x /etc/rc.d/init.d/mysql-proxy






4.2爲服務腳本提供配置文件/etc/sysconfig/mysql-proxy

# vi /etc/sysconfig/mysql-proxy

# Options for mysql-proxy
ADMIN_USER="admin"
ADMIN_PASSWORD="admin"
ADMIN_ADDRESS=""
ADMIN_LUA_SCRIPT="/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua"
PROXY_ADDRESS="0.0.0.0:3306"
PROXY_USER="mysql-proxy"
PROXY_OPTIONS="--daemon --log-level=info--log-file=/var/log/mysql-proxy.log --plugins=proxy --plugins=admin--proxy-backend-addresses=192.168.1.112:3306--proxy-read-only-backend-addresses=192.168.1.113:3306 --proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua"




4.3把mysql-proxy加入系統服務,並設置啓動級別

# chkconfig --add mysql-proxy

# chkconfig mysql-proxy --level 345 on


 

 

 

4.4使用service啓動mysql-proxy

# service mysql-proxy start
















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章