日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

MySQL高级知识(十五)——主从复制

發(fā)布時間:2025/3/20 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL高级知识(十五)——主从复制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言:本章主要講解MySQL主從復(fù)制的操作步驟。由于環(huán)境限制,主機(jī)使用Windows環(huán)境,從機(jī)使用用Linux環(huán)境。另外MySQL的版本最好一致,筆者采用的MySQL5.7.22版本,具體安裝過程請查詢相關(guān)資料。


1.主從復(fù)制的基本原理

slave會從master讀取binlog來進(jìn)行數(shù)據(jù)同步。主要有以下三個步驟:

①master將改變記錄到二進(jìn)制日志(binary log),這些記錄過程叫做二進(jìn)制日志事件(binary log events)。

②slave將master的binary log events拷貝到中繼日志(relay log)。

③slave重做中繼日志中的事件,將改變應(yīng)用到自己的數(shù)據(jù)庫中。MySQL的復(fù)制是異步且串行化的

2.主從復(fù)制的規(guī)則

①每個slave只能有一個master。(一對一

②每個slave只能有一個唯一的服務(wù)器ID

③每個master可以有多個slave。(一對多

在主從復(fù)制過程中,最大的問題就是延時

3.一主一從的常見配置

#1.要求。

MySQL版本最好一致且后臺以服務(wù)運(yùn)行。并且保證主機(jī)與從機(jī)互相ping通。主從配置都在[mysqld]結(jié)點(diǎn)下,都是小寫。

#2.主機(jī)修改my.ini配置文件

server-id=1,主機(jī)服務(wù)器id。(必須)

必須啟用二進(jìn)制文件。

log-bin="E:\devSoft\mysql-5.7.22-winx64\data\mysql-bin"

配置該項(xiàng)后,重新啟動mysql服務(wù),可看到如下內(nèi)容。

③啟用錯誤日志。(可選

log_error ="E:\devSoft\mysql-5.7.22-winx64\data\log\errorlog\log_error.log"

④根目錄、數(shù)據(jù)目錄。(可選

#mysql安裝根目錄 basedir ="E:\devSoft\mysql-5.7.22-winx64"#mysql數(shù)據(jù)文件所在位置 datadir ="E:\devSoft\mysql-5.7.22-winx64\data"

⑤臨時目錄。(可選

tmpdir ="E:\devSoft\mysql-5.7.22-winx64\"

read-only=0,表示主機(jī)讀寫都可以

⑦可設(shè)置不需要復(fù)制的數(shù)據(jù)庫。(可選

binlog-ignore-db=mysql

⑧可設(shè)置需要復(fù)制的數(shù)據(jù)庫。(可選

binlog-do-db=databasename

#3.從機(jī)修改my.cnf配置文件

從服務(wù)器ID。(必須)

②啟用二進(jìn)制日志。(可選

#4.主機(jī)與從機(jī)都關(guān)閉防火墻,其實(shí)也可配置ip規(guī)則,但關(guān)閉防火墻更快速。

#5.在Windows主機(jī)上建立賬戶并授權(quán)給slave。

a.首先在主機(jī)上創(chuàng)建賬戶

#%表示任何客戶端都可以連接grant all privileges on *.* to slaveaccount(用戶名)@"%(或者指定ip)" identified by '你想設(shè)置的密碼' with grant option;

b.然后刷新權(quán)限表:

flush privileges;

c.然后授權(quán)給slave:

GRANT REPLICATION SLAVE ON *.* TO 'slaveaccount(上面創(chuàng)建的用戶名)'@'從機(jī)數(shù)據(jù)庫ip' IDENTIFIED BY '你想設(shè)置的密碼'

d.利用b步驟命令再次刷新權(quán)限表。

#6.查詢master的狀態(tài)。

FilePosition這兩個字段非常重要,File告訴從機(jī)需要從哪個文件進(jìn)行復(fù)制,Position告訴從機(jī)從文件的哪個位置開始復(fù)制,在從機(jī)上配置時需用到。執(zhí)行完此操作后,盡量不要在操作主服務(wù)器MySQL,防止主服務(wù)器狀態(tài)變化(File和Position狀態(tài)變化)。

#7.在Linux從機(jī)上配置需要的主機(jī)。

CHANGE MASTER TO MASTER_HOST='主機(jī)IP',MASTER_USER='salveaccount',MASTER_PASSWORD='主機(jī)授權(quán)的密碼',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=Position數(shù)字;

#8.啟動從服務(wù)器復(fù)制功能。

start slave;

啟動復(fù)制功能后,需要查看主從復(fù)制配置是否成功。

注:只有當(dāng)Slave_IO_Running:YesSlave_SQL_Running:Yes,這兩個都為Yes的時候,主從復(fù)制配置才成功。

#9.進(jìn)行測試。

①首先在主機(jī)上建立數(shù)據(jù)庫并插入數(shù)據(jù)。

②在從機(jī)中查看是否有相應(yīng)數(shù)據(jù)庫。

通過從機(jī)上查看相應(yīng)數(shù)據(jù),可知主從復(fù)制配置成功。

#10.停止從服務(wù)復(fù)制功能。

stop slave;

4.總結(jié)

#1.主從復(fù)制的配置,大部分都在主機(jī)上,注意查看相關(guān)步驟。

#2.這里將主從機(jī)的防火墻都關(guān)閉是為了更好的演示,實(shí)際生產(chǎn)環(huán)境中一般不會出現(xiàn)windows主機(jī)和linux從機(jī)這種情況,因此不應(yīng)該關(guān)閉防火墻,而是根據(jù)具體情況配置防火墻規(guī)則


by Shawn Chen,2018.6.30日,下午。


相關(guān)內(nèi)容

MySQL高級知識系列目錄

轉(zhuǎn)載于:https://www.cnblogs.com/developer_chan/p/9240052.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的MySQL高级知识(十五)——主从复制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。