mysql-proxy讀寫分離

一、安裝

需要的軟件包:
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
mysql-proxy讀寫分離
cd /usr/local/mysql-proxy/
mkdir etc/
vim mysql-proxy.conf
mysql-proxy讀寫分離
在/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
儘量都進行使用絕對路徑
開啓的端口:
mysql-proxy讀寫分離
4041爲管理員端口,3306爲mysql-proxy與進行讀寫分離的兩臺mysql的主機進行直接通信的端口,如果使用mysql-proxy的默認端口,則必須在登陸時在後面加上 -P 4040

進行管理員登陸:

mysql -uadmin -predhat -h 172.25.99.5 -P 4041
mysql-proxy讀寫分離
可以看到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了,即可
mysql-proxy讀寫分離
而且在客戶端進行使用哪一個數據庫時,管理員端也是在實時的進行監控的。
客戶端幾次進行操作的都是zy這個數據庫
mysql-proxy讀寫分離
使用tcpdump或者lsof進行抓包,查看proxy端將用戶的請求扔向了哪一個mysql服務器
在172.25.99.250客戶端進行寫操作,server2上進行讀操作,查看抓包情況
此爲寫操作,250向proxy發出請求,proxy轉向master
mysql-proxy讀寫分離
此爲讀操作,server2向proxy發出請求,proxy轉向slave
mysql-proxy讀寫分離
實現了讀寫分離。

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