十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本文以MYSQL數(shù)據(jù)庫的主從復(fù)制為例,為大家分析MYSQL數(shù)據(jù)庫的主從復(fù)制的基本原理和相關(guān)配置,閱讀完整文相信大家對MYSQL數(shù)據(jù)庫的主從復(fù)制有了一定的認識。
MySQL復(fù)制過程分成三步:
binary log
)。這些記錄過程叫做二進制日志事件,binary log events
;binary log events
拷貝到它的中繼日志(relay log);簡單來說: slave會從master讀取binlog來進行數(shù)據(jù)同步
Mysql的復(fù)制(replication)是一個異步的復(fù)制。
實現(xiàn)整個復(fù)制操作主要由三個進程完成的,其中兩個進程在Slave(Sql進程和IO進程),另外一個進程在 Master(IO進程)上。
要實施復(fù)制,首先必須打開Master端的binary log(bin-log)
功能,否則無法實現(xiàn)。
因為整個復(fù)制過程實際上就是Slave從Master端獲取該日志然后再在自己身上完全順序的執(zhí)行日志中所記錄的各種操作。
復(fù)制的詳細過程:
(1)Slave上面的IO進程連接上Master,并請求從指定日志文件的指定位置(或者從最開始的日志)之后的日志內(nèi)容;
(2)Master接收到來自Slave的IO進程的請求后,通過負責(zé)復(fù)制的IO進程根據(jù)請求信息讀取制定日志指定位置之后的日志信息,返回給Slave 的IO進程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息已經(jīng)到Master端的
bin-log
文件的名稱以及bin-log
的位置;(3)Slave的IO進程接收到信息后,將接收到的日志內(nèi)容依次添加到Slave端的
relay-log
文件的最末端,并將讀取到的Master端的 bin-log的文件名和位置記錄到master-info
文件中,以便在下一次讀取的時候能夠清楚的高速Master“我需要從某個bin-log的哪個位置開始往后的日志內(nèi)容,請發(fā)給我”;(4)Slave的Sql進程檢測到relay-log中新增加了內(nèi)容后,會馬上解析relay-log的內(nèi)容成為在Master端真實執(zhí)行時候的那些可執(zhí)行的內(nèi)容,并在自身執(zhí)行。
原則:
演示主機為Windows
(配置文件為my.ini
文件),從機為Linux
(配置文件為my.cnf
)
log-bin=自己本地的路徑/data/mysqlbin
。log-bin=D:/devSoft/MySQLServer5.5/data/mysqlbin
。log-err=自己本地的路徑/data/mysqlerr
。log-err=D:/devSoft/MySQLServer5.5/data/mysqlerr
。basedir="自己本地路徑"
。basedir="D:/devSoft/MySQLServer5.5/"
。tmpdir="自己本地路徑"
。tmpdir="D:/devSoft/MySQLServer5.5/"
。datadir="自己本地路徑/Data/"
。datadir="D:/devSoft/MySQLServer5.5/Data/"
。binlog-ignore-db=mysql
。binlog-do-db=需要復(fù)制的主數(shù)據(jù)庫名字
。service iptables stop
;GRANT REPLICATION SLAVE ON *.* TO 'zhangsan'@'從機器數(shù)據(jù)庫IP' IDENTIFIED BY '123456';
。flush privileges;
。show master status;
CHANGE MASTER TO MASTER_HOST='主機IP',MASTER_USER='zhangsan',MASTER_PASSWORD='123456',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=Position數(shù)字;
start slave;
。Slave_IO_Running: Yes
。Slave_SQL_Running: Yes
。CHANGE MASTER TO MASTER_HOST='192.168.124.3',
MASTER_USER='zhangsan',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysqlbin.具體數(shù)字',MASTER_LOG_POS=具體值;
在linux
下面輸入stop slave;
。
看完上述內(nèi)容,你們對MYSQL數(shù)據(jù)庫的主從復(fù)制有進一步的了解嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。