溫馨提示×

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

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

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

發(fā)布時(shí)間:2021-12-18 17:48:16 來(lái)源:億速云 閱讀:209 作者:柒染 欄目:數(shù)據(jù)庫(kù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

使用背景:在網(wǎng)聯(lián)網(wǎng)不斷發(fā)展的時(shí)代,人們對(duì)數(shù)據(jù)的使用也不斷的增加,對(duì)于用戶的請(qǐng)求不斷的增加,數(shù)據(jù)庫(kù)的讀寫操作就特別大,就會(huì)導(dǎo)致服務(wù)器受不了那么多用戶的請(qǐng)求和對(duì)數(shù)據(jù)的操作,導(dǎo)致服務(wù)器負(fù)荷,相應(yīng)的用戶的等待時(shí)間就會(huì)特別長(zhǎng),給用戶的體驗(yàn)特別差,而主從同步就很好的解決的這種并發(fā)的問題。

主從同步:簡(jiǎn)單來(lái)說(shuō)就是使用兩臺(tái)服務(wù)器,分別處理用戶的讀和寫的操作,從而實(shí)現(xiàn)了讀寫分離。由于從服務(wù)器同步的主服務(wù)器上的數(shù)據(jù),所以主從同步極大的保證了數(shù)據(jù)的安全。

基本原理:主從同步,分為兩臺(tái)服務(wù)器

如圖:Master為主服務(wù)器,Slave為從服務(wù)器

1. 主服務(wù)器(Master)對(duì)數(shù)據(jù)的操作,對(duì)事務(wù)更新完成之前,mysql將以串行的形式將日志以2進(jìn)制的形式寫入到Binary log日志中(即二進(jìn)制日志事件),在事務(wù)寫完以后,Master通知存儲(chǔ)引擎,提交事務(wù).

2.提交事務(wù)后,Slave服務(wù)器,將Master的Binary log日志拷貝到自己的Relay log中(即Slave開啟I/O thread 讀取Master中的Binary log,然后寫入到Slave中的Relay log 中)

3.SOL thread線程將Relay log中的日志讀取,重做數(shù)據(jù),達(dá)到將Master中的數(shù)據(jù)改變同步到Slave中.

所以:兩臺(tái)服務(wù)器,Master提供給用戶寫(增,刪,該)的操作,Slave供公戶讀(查詢)的操作,從而大大的減輕了服務(wù)器的負(fù)荷,解決了高并發(fā)的問題。

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

那么接下來(lái)讓我們看看如何使用兩臺(tái)服務(wù)器搭建mysql的主從同步吧(ps:今天只介紹如何在服務(wù)器上搭建主從同步的實(shí)現(xiàn))。

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

在開始之前,需要兩臺(tái)服務(wù)器,安裝好linux系統(tǒng),并且安裝好mysql 5.1以上的版本.(最好安裝有vim編輯器)。

那么這些環(huán)境準(zhǔn)備好了,就開始搭建吧!

1.使用SSH連接你的兩臺(tái)服務(wù)器(這里我用的兩臺(tái)為Master和Slave的服務(wù)器)

2.修改Master和Slave上的mysql的配置文件

 a.修改主服務(wù)器(Master)的配置文件

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

輸入命令:vim /etc/my.cnf  (mysql的默認(rèn)安裝位置)

會(huì)出現(xiàn)以下提示:

選擇e,進(jìn)行編輯.

按i鍵

在mysqld下添加以下配置:

server-id=1    log-bin=master-bin    log-bin-index=master-bin.index

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

如圖(看圖上具體細(xì)節(jié)),wq保存并退出,這里主服務(wù)器(Master)的配置就好了。

然后重載mysql配置

輸入:service mysqld restart

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

接下來(lái)我們看看是否成功配置

在Master中登錄mysql

命令:mysql -uroot -p

輸入密碼后進(jìn)入mysql界面,輸入show master status,如圖:

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

b.修改從服務(wù)器的配置(Slave)

連接Slave服務(wù)器,vim打開mysql的配置文件

原理一樣,在mysqld添加下配置

server-id=2  relay-log=slave-relay-bin  relay-log-index=slave-relay-bin.index

如圖:

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

保存退出

然后重啟mysql,這里介紹另一種重啟mysql的方法

輸入命令:/etc/init.d/mysql stop 停止

/etc/init.d/mysql start  啟動(dòng)

登錄mysql驗(yàn)證配置是否有誤

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

說(shuō)明,配置沒啥問題。

3.開始主從連接  

a.在主服務(wù)器中添加從服務(wù)器連接所用到的用戶

在master中創(chuàng)建用戶mengxin(ps:這是筆者用的名字)

create user mengxin

再授予mengxin 主從訪問權(quán)限

grant replication slave on *.* to 'mengxin'@'從服務(wù)器的ip' identified by '連接時(shí)需要的用戶密碼(自己設(shè)置)';

然后輸入:flush privileges

刷新更新權(quán)限信息

b.來(lái)到從服務(wù)器(Slave)進(jìn)行連接

 登錄到從服務(wù)器的mysql

 輸入命令:

change master to master_host='主機(jī)ip',master_port=3306,master_user='mengxin',master_password='mengxin',master_log_file='master-bin.000001',master_log_pos=0

進(jìn)行連接,

命令說(shuō)明:master_host為Master服務(wù)器的ip,master_port為Master服務(wù)器的端口(默認(rèn)為3306),master_user為剛剛在Master服務(wù)器上設(shè)置的user名,master_password為剛剛設(shè)置的密碼,master_log_file為剛剛上面說(shuō)到的要用的那個(gè)參數(shù)(ps:可以在master服務(wù)器上輸入命令:show master status進(jìn)行查看)

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

執(zhí)行該命令后,表示連接已完成,

開啟主從同步:start slave

然后輸入:show slave status  \G;

查看運(yùn)行狀態(tài):(如圖,沒有報(bào)錯(cuò),表示主從同步成功配置)

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

最后讓我們來(lái)驗(yàn)證一下,主從同步的效果:

在Master中創(chuàng)建mengxin_shop數(shù)據(jù)庫(kù)

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

在Slave服務(wù)器中,查看數(shù)據(jù)庫(kù),可以看到在master中添加的數(shù)據(jù)庫(kù)更新到Slave中了

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

呼,終于寫完了,遇到了各種各樣的錯(cuò)誤,還是一點(diǎn)點(diǎn)的解決了

這里列舉出配置過程中遇到的集中常見的錯(cuò)誤吧

1.如果配置中,最后一步查看Slave的狀態(tài)出現(xiàn)如圖所示錯(cuò)誤

如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離

這表明,mysql.user中沒有plugin這個(gè)字段,這是因?yàn)槟鉳ysql的版本為5.1,沒有這個(gè)字段,授權(quán)會(huì)出現(xiàn)問題

解決辦法:將兩臺(tái)服務(wù)器的mysql版本保持到5.5以上,盡量相同版本

2.有時(shí)會(huì)出現(xiàn)Slave連接Master連接不上的錯(cuò)誤,請(qǐng)檢查服務(wù)器上的mysql數(shù)據(jù)庫(kù)端口3306是否關(guān)閉防火墻。

3.有時(shí)會(huì)出現(xiàn)slave和master id相同的錯(cuò)誤,請(qǐng)確保slave配置中的server-id是否值只存在一個(gè),并且為2

上述就是小編為大家分享的如何用兩臺(tái)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫(kù)的主從同步與分離了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(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