1. 程式人生 > >mysql-proxy讀寫分離

mysql-proxy讀寫分離

log pdu share ins 文件的 一個 red 需要 ffffff

一、安裝

需要的軟件包:
mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local

二、配置文件的修改

vim /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
技術分享圖片
cd /usr/local/mysql-proxy/
mkdir etc/
vim mysql-proxy.conf
技術分享圖片
在/usr/local/mysql-proxy/路徑中建立對應的logs目錄,否則在開啟服務時會出現報錯
還要將mysql-proxy的配置文件的權限修改為660,否則在開啟服務器時會有權限過大的問題。

開啟服務:
/usr/local/mysql-proxy/bin/mysql-proxy --plugins=admin --plugins=proxy --defaults-file=/usr/local/mysql-proxy/etc/mysql-proxy.conf
盡量都進行使用絕對路徑
開啟的端口:
技術分享圖片
4041為管理員端口,3306為mysql-proxy與進行讀寫分離的兩臺mysql的主機進行直接通信的端口,如果使用mysql-proxy的默認端口,則必須在登陸時在後面加上 -P 4040

進行管理員登陸:

mysql -uadmin -predhat -h 172.25.99.5 -P 4041
技術分享圖片
可以看到master的擁有rw權限,slave擁有的是ro權限

在master的mysql對管理的用戶進行授權,

grant select,update,insert on . to proxy@‘172.25.99.%‘ identified by ‘ZHAOyan+1998‘; #讀寫分離使用的用戶
flush privileges;
在實現讀寫分離的時候
一定先要保證是在讀寫分離的基礎上
進行連接:
mysql -h 172.25.99.5 -uproxy -pZHAOyan+1998
使用兩個客戶端進行連接,這樣可以在管理員端進行查看時兩個均被up了,即可
技術分享圖片
而且在客戶端進行使用哪一個數據庫時,管理員端也是在實時的進行監控的。
客戶端幾次進行操作的都是zy這個數據庫

技術分享圖片
使用tcpdump或者lsof進行抓包,查看proxy端將用戶的請求扔向了哪一個mysql服務器
在172.25.99.250客戶端進行寫操作,server2上進行讀操作,查看抓包情況
此為寫操作,250向proxy發出請求,proxy轉向master
技術分享圖片
此為讀操作,server2向proxy發出請求,proxy轉向slave
技術分享圖片
實現了讀寫分離。

mysql-proxy讀寫分離