久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

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

130次閱讀
沒有評論

共計 2585 個字符,預(yù)計需要花費 7 分鐘才能閱讀完成。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

按 i 鍵

在 mysqld 下添加以下配置:

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

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

然后重載 mysql 配置

輸入:service mysqld restart

接下來我們看看是否成功配置

在 Master 中登錄 mysql

命令:mysql -uroot -p

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

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

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

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

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

如圖:

保存退出

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

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

/etc/init.d/mysql start   啟動

登錄 mysql 驗證配置是否有誤

說明,配置沒啥問題。

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è)置)

然后輸入:flush privileges

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

b. 來到從服務(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)行連接,

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

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

開啟主從同步:start slave

然后輸入:show slave status  \G;

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

最后讓我們來驗證一下,主從同步的效果:

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

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

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

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

呼,終于寫完了,遇到了各種各樣的錯誤,還是一點點的解決了

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

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

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

這表明,mysql.user 中沒有 plugin 這個字段,這是因為你 mysql 的版本為 5.1,沒有這個字段,授權(quán)會出現(xiàn)問題

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

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

3. 有時會出現(xiàn) slave 和 master id 相同的錯誤,請確保 slave 配置中的 server-id 是否值只存在一個,并且為 2

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

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-17發(fā)表,共計2585字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 阿克苏市| 疏附县| 恭城| 赞皇县| 南川市| 邢台县| 信丰县| 长葛市| 彭山县| 封丘县| 邵武市| 邢台县| 安溪县| 抚宁县| 双牌县| 运城市| 琼海市| 吉水县| 白朗县| 商河县| 拉萨市| 高密市| 新和县| 满洲里市| 宁南县| 青龙| 壶关县| 蒙城县| 仙桃市| 襄城县| 舒城县| 龙南县| 嘉善县| 阳新县| 公安县| 宝坻区| 蓬溪县| 巴东县| 澜沧| 通江县| 怀宁县|