溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

企業(yè) - mysql 讀寫(xiě)分離(proxy)

發(fā)布時(shí)間:2020-07-09 16:07:59 來(lái)源:網(wǎng)絡(luò) 閱讀:636 作者:huanzi2017 欄目:MySQL數(shù)據(jù)庫(kù)

                                                              MySQL Proxy

MySQL Proxy是一個(gè)處于你的client端和MySQL server端之間的簡(jiǎn)單程序,它可以監(jiān)測(cè)、分析或改變它們的通信。它使用靈活,沒(méi)有限制,常見(jiàn)的用途包括:負(fù)載平衡,故障、查詢(xún)分析,查詢(xún)過(guò)濾和修改等等。

MySQL Proxy就是這么一個(gè)中間層代理,簡(jiǎn)單的說(shuō),MySQL Proxy就是一個(gè)連接池,負(fù)責(zé)將前臺(tái)應(yīng)用的連接請(qǐng)求轉(zhuǎn)發(fā)給后臺(tái)的數(shù)據(jù)庫(kù),并且通過(guò)使用lua腳本,可以實(shí)現(xiàn)復(fù)雜的連接控制和過(guò)濾,從而實(shí)現(xiàn)讀寫(xiě)分離負(fù)載平衡。對(duì)于應(yīng)用來(lái)說(shuō),MySQL Proxy是完全透明的,應(yīng)用則只需要連接到MySQL Proxy的監(jiān)聽(tīng)端口即可。當(dāng)然,這樣proxy機(jī)器可能成為單點(diǎn)失效,但完全可以使用多個(gè)proxy機(jī)器做為冗余,在應(yīng)用服務(wù)器的連接池配置中配置到多個(gè)proxy的連接參數(shù)即可。

MySQL Proxy更強(qiáng)大的一項(xiàng)功能是實(shí)現(xiàn)“讀寫(xiě)分離”,基本原理是讓主數(shù)據(jù)庫(kù)處理事務(wù)性查詢(xún),讓從庫(kù)處理SELECT查詢(xún)。數(shù)據(jù)庫(kù)復(fù)制被用來(lái)把事務(wù)性查詢(xún)導(dǎo)致的變更同步到集群中的從庫(kù)。


實(shí)驗(yàn)


實(shí)驗(yàn)環(huán)境

server1   192.168.122.11     master

server2   192.168.122.12     slave

server3   192.168.122.13     proxy


一.安裝 mysql-proxy 并配置


  1. 解壓到指定路徑

    [root@server3~]#tar zxf  mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local

  2. 改名字
    [root@server3local]# mysql-proxy-0.8.5-linux-el6-x86-64bit/ mysql-proxy

  3. 建目錄

    [root@server3 mysql-proxy]# mkdir etc
    [root@server3 mysql-proxy]# mkdir logs

  4. 寫(xiě)配置文件

    [root@server3 etc]# vim mysql-proxy.conf

    企業(yè) - mysql 讀寫(xiě)分離(proxy)

  5. 加權(quán)限

    [root@server3 etc]# chmod 660 mysql-proxy.conf

  6. 改參數(shù)

    [root@server3 mysql-proxy]# vim rw-splitting.lua
    [root@server3 mysql-proxy]# pwd
    /usr/local/mysql-proxy/share/doc/mysql-proxy

    企業(yè) - mysql 讀寫(xiě)分離(proxy)

  7. 運(yùn)行腳本開(kāi)啟服務(wù)

    [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

    企業(yè) - mysql 讀寫(xiě)分離(proxy)


二、主機(jī) master 進(jìn)行授權(quán)(192.168.122.11)


mysql>grant select, update, insert on *.* to proxy@'192.168.122.%' identified by 'LH=redhat123';


(slave 會(huì)同步授權(quán))


企業(yè) - mysql 讀寫(xiě)分離(proxy)


在 proxy 主機(jī)登錄

[root@server3 ~]# mysql -uadmin -pwestos -P 4041 -h 192.168.122.13


查看 mysql 主,備狀態(tài)

企業(yè) - mysql 讀寫(xiě)分離(proxy)



在客戶(hù)端遠(yuǎn)程登錄數(shù)據(jù)庫(kù)


[root@server4 ~]# mysql -h 192.168.122.13 -uproxy -pLH=redhat123


寫(xiě)入數(shù)據(jù)

企業(yè) - mysql 讀寫(xiě)分離(proxy)



在 proxy 主機(jī)查看

企業(yè) - mysql 讀寫(xiě)分離(proxy)


(master 狀態(tài)已經(jīng)改變)


再次在客戶(hù)端登錄

[root@server5 ~]# mysql -h 192.168.122.13 -uproxy  -pLH@redhat123


企業(yè) - mysql 讀寫(xiě)分離(proxy)

查看 proxy

企業(yè) - mysql 讀寫(xiě)分離(proxy)


三、檢查是否實(shí)現(xiàn)數(shù)據(jù)分離


為了清楚看到數(shù)據(jù)傳輸狀況

[root@server3 ~]# yum install tcpdump

企業(yè) - mysql 讀寫(xiě)分離(proxy)


[root@server3 ~]# yum install -y lsof

企業(yè) - mysql 讀寫(xiě)分離(proxy)






向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI