您好,登錄后才能下訂單哦!
MySQL Proxy是一個處于你的client端和MySQL server端之間的簡單程序,它可以監測、分析或改變它們的通信。它使用靈活,沒有限制,常見的用途包括:負載平衡,故障、查詢分析,查詢過濾和修改等等。
MySQL Proxy就是這么一個中間層代理,簡單的說,MySQL Proxy就是一個連接池,負責將前臺應用的連接請求轉發給后臺的數據庫,并且通過使用lua腳本,可以實現復雜的連接控制和過濾,從而實現讀寫分離和負載平衡。對于應用來說,MySQL Proxy是完全透明的,應用則只需要連接到MySQL Proxy的監聽端口即可。當然,這樣proxy機器可能成為單點失效,但完全可以使用多個proxy機器做為冗余,在應用服務器的連接池配置中配置到多個proxy的連接參數即可。
MySQL Proxy更強大的一項功能是實現“讀寫分離”,基本原理是讓主數據庫處理事務性查詢,讓從庫處理SELECT查詢。數據庫復制被用來把事務性查詢導致的變更同步到集群中的從庫。
實驗
實驗環境
server1 192.168.122.11 master
server2 192.168.122.12 slave
server3 192.168.122.13 proxy
一.安裝 mysql-proxy 并配置
解壓到指定路徑
[root@server3~]#tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local
改名字
[root@server3local]# mysql-proxy-0.8.5-linux-el6-x86-64bit/ mysql-proxy
建目錄
[root@server3 mysql-proxy]# mkdir etc
[root@server3 mysql-proxy]# mkdir logs
寫配置文件
[root@server3 etc]# vim mysql-proxy.conf
加權限
[root@server3 etc]# chmod 660 mysql-proxy.conf
改參數
[root@server3 mysql-proxy]# vim rw-splitting.lua
[root@server3 mysql-proxy]# pwd
/usr/local/mysql-proxy/share/doc/mysql-proxy
運行腳本開啟服務
[root@server3bin]# /usr/local/mysql-proxy/bin/mysql-proxy --plugins=admin --plugins=proxy --defaults-file=/usr/local/mysql-proxy/etc/mysql-proxy.conf
檢查端口
netstate -antlup
二、主機 master 進行授權(192.168.122.11)
mysql>grant select, update, insert on *.* to proxy@'192.168.122.%' identified by 'LH=redhat123';
(slave 會同步授權)
在 proxy 主機登錄
[root@server3 ~]# mysql -uadmin -pwestos -P 4041 -h 192.168.122.13
查看 mysql 主,備狀態
在客戶端遠程登錄數據庫
[root@server4 ~]# mysql -h 192.168.122.13 -uproxy -pLH=redhat123
寫入數據
在 proxy 主機查看
(master 狀態已經改變)
再次在客戶端登錄
[root@server5 ~]# mysql -h 192.168.122.13 -uproxy -pLH@redhat123
查看 proxy
三、檢查是否實現數據分離
為了清楚看到數據傳輸狀況
[root@server3 ~]# yum install tcpdump
[root@server3 ~]# yum install -y lsof
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。