溫馨提示×

溫馨提示×

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

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

MYSQL的主從復(fù)制與讀寫分離

發(fā)布時間:2020-09-28 19:16:00 來源:網(wǎng)絡(luò) 閱讀:294 作者:可愛就行 欄目:MySQL數(shù)據(jù)庫

在實際生產(chǎn)環(huán)境中,如果對數(shù)據(jù)庫的讀和寫都在同一個數(shù)據(jù)庫服務(wù)器中操作,無論是安全性,高可用性,還是高并發(fā)性等各個方面都是不能滿足實際需求,因此,一般來說都是通過主從復(fù)制的方式來同步詩句,再通過讀寫分離來提升數(shù)據(jù)庫的并發(fā)負(fù)載能力這樣的方案來實施和部署。
MYSQL主從復(fù)制的原理
MYSQL的主從復(fù)制和MYSQL的讀寫分離兩者有著緊密的聯(lián)系,首先要部署主從復(fù)制,只有主從復(fù)制完成了,才能在此基礎(chǔ)上進行數(shù)據(jù)的讀寫分離。
MYSQL讀寫分離原理
讀寫分離就是只在主服務(wù)器上寫,只能在從服務(wù)器上讀?;驹砭褪亲屩鲾?shù)據(jù)庫處理事務(wù)性查詢,從而數(shù)據(jù)庫處理select查詢。數(shù)據(jù)庫復(fù)制被用來把事務(wù)性查詢導(dǎo)致的變更同步到群集分鐘的從數(shù)據(jù)庫。
基于中間代理層實現(xiàn):代理一般位于客戶端和服務(wù)器之間,代理服務(wù)器建立到客戶端請求通過判斷后轉(zhuǎn)發(fā)到后端數(shù)據(jù)庫。這里我們用的是Amoeba。

實驗所需用到的包和整理的腳本鏈接: https://pan.baidu.com/s/1papoUzo9sIVWs2QaIpdOWg 密碼: qm2g

主服務(wù)器IP:192.168.175.128
從服務(wù)器IP1:192.168.175.141
從服務(wù)器IP2:192.168.175.142
代理服務(wù)器地址:192.168.175.133
實驗如下:
實驗開始前首先把所有服務(wù)器的防火墻關(guān)掉
首先我們需要時主從服務(wù)器的時間進行同步
MYSQL的主從復(fù)制與讀寫分離
MYSQL的主從復(fù)制與讀寫分離
在主服務(wù)器上的etc下ntp.conf這個文件的最后進行插入插入服務(wù)器的地址段,但這里使用127來指明不要用真實地址段。退出文件后開啟ntp服務(wù)
MYSQL的主從復(fù)制與讀寫分離
在兩臺從服務(wù)器上指定主服務(wù)器的地址進行同步。
下面要進行的操作的是主從復(fù)制
MYSQL的主從復(fù)制與讀寫分離
MYSQL的主從復(fù)制與讀寫分離
首先回到主服務(wù)器上在etc下面的my.cnf文件下進行修改,如文件里沒有的自行添加
下面對住服務(wù)器的數(shù)據(jù)庫進行操作
MYSQL的主從復(fù)制與讀寫分離
首先創(chuàng)建個用戶給權(quán)限,在刷新使數(shù)據(jù)庫立即生效,在顯示主從同步狀態(tài)

下面回到從服務(wù)器上操作
MYSQL的主從復(fù)制與讀寫分離
在兩臺從服務(wù)器上etc下面的my.cnf文件下進行修改,如文件里沒有的自行添加
MYSQL的主從復(fù)制與讀寫分離
進入數(shù)據(jù)庫指定主服務(wù)器地址和二進制日志和節(jié)點,在這里要注意的是主服務(wù)器的節(jié)點經(jīng)常會改變,所有在進行操作前要確認(rèn)主服務(wù)器的節(jié)點和二進制日志。開啟主從同步,顯示主從同步狀態(tài),這里需要看到兩個yes。
為了驗證主從同步是否成功可以在主服務(wù)器上創(chuàng)建一個數(shù)據(jù)庫來驗證

下面要進行的代理服務(wù)器上的操作
MYSQL的主從復(fù)制與讀寫分離
MYSQL的主從復(fù)制與讀寫分離
安裝java環(huán)境
MYSQL的主從復(fù)制與讀寫分離
在etc下面的profile文件最下面這段話,在使用source刷新這個文件,這個文件會改變系統(tǒng)的環(huán)境變量

MYSQL的主從復(fù)制與讀寫分離
在這里我們需要開放權(quán)限給amoeba,所以回到主服務(wù)器和從服務(wù)器上開放權(quán)限

MYSQL的主從復(fù)制與讀寫分離
創(chuàng)建一個amoeba文件來放一會我們解壓的文件
MYSQL的主從復(fù)制與讀寫分離
修改amoeba兩個配置文件
MYSQL的主從復(fù)制與讀寫分離
首先設(shè)置一個用戶來使客戶端能訪問服務(wù)器MYSQL的主從復(fù)制與讀寫分離
指定寫是主讀是從

MYSQL的主從復(fù)制與讀寫分離
編輯下個文件
MYSQL的主從復(fù)制與讀寫分離
設(shè)置一個代理訪問服務(wù)器的用戶
MYSQL的主從復(fù)制與讀寫分離
指定主服務(wù)器的地址
MYSQL的主從復(fù)制與讀寫分離
指定兩臺從服務(wù)器地址
MYSQL的主從復(fù)制與讀寫分離
因為之前修改了從服務(wù)器的名字文slave所以下面要更改過來

MYSQL的主從復(fù)制與讀寫分離
使用/usr/local/amoeba/bin/amoeba start&來開啟amoeba代理服務(wù)
可以使用netstat -ntap | grep java來查看監(jiān)聽地址和端口

這里所有的服務(wù)就算完成了,在客戶端的數(shù)據(jù)庫可以使用mysql -u amoeba -p123456 -h 192.168.175.133 -P 8066
這里指定登錄用戶問amoeba 密碼為123456 地址為代理服務(wù)器地址 -P指定端口
為了驗證讀寫是否分離,可以現(xiàn)在三代服務(wù)器上創(chuàng)建一個表,在每個表里各寫一段不同的數(shù)據(jù),之后再兩臺從服務(wù)器上使用 stop slave; 來關(guān)閉主從
之后再客戶端查看表里的內(nèi)容若只能顯示從服務(wù)器的信息。在客戶端插入一條信息只有主服務(wù)器才能開到。這樣實驗就算完成了就算完成了。

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

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

AI