您好,登錄后才能下訂單哦!
本文以MYSQL數(shù)據(jù)庫(kù)的主從復(fù)制為例,為大家分析MYSQL數(shù)據(jù)庫(kù)的主從復(fù)制的基本原理和相關(guān)配置,閱讀完整文相信大家對(duì)MYSQL數(shù)據(jù)庫(kù)的主從復(fù)制有了一定的認(rèn)識(shí)。
MySQL復(fù)制過(guò)程分成三步:
binary log
)。這些記錄過(guò)程叫做二進(jìn)制日志事件,binary log events
;binary log events
拷貝到它的中繼日志(relay log);簡(jiǎn)單來(lái)說(shuō): slave會(huì)從master讀取binlog來(lái)進(jìn)行數(shù)據(jù)同步
Mysql的復(fù)制(replication)是一個(gè)異步的復(fù)制。
實(shí)現(xiàn)整個(gè)復(fù)制操作主要由三個(gè)進(jìn)程完成的,其中兩個(gè)進(jìn)程在Slave(Sql進(jìn)程和IO進(jìn)程),另外一個(gè)進(jìn)程在 Master(IO進(jìn)程)上。
要實(shí)施復(fù)制,首先必須打開Master端的binary log(bin-log)
功能,否則無(wú)法實(shí)現(xiàn)。
因?yàn)檎麄€(gè)復(fù)制過(guò)程實(shí)際上就是Slave從Master端獲取該日志然后再在自己身上完全順序的執(zhí)行日志中所記錄的各種操作。
復(fù)制的詳細(xì)過(guò)程:
(1)Slave上面的IO進(jìn)程連接上Master,并請(qǐng)求從指定日志文件的指定位置(或者從最開始的日志)之后的日志內(nèi)容;
(2)Master接收到來(lái)自Slave的IO進(jìn)程的請(qǐng)求后,通過(guò)負(fù)責(zé)復(fù)制的IO進(jìn)程根據(jù)請(qǐng)求信息讀取制定日志指定位置之后的日志信息,返回給Slave 的IO進(jìn)程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息已經(jīng)到Master端的
bin-log
文件的名稱以及bin-log
的位置;(3)Slave的IO進(jìn)程接收到信息后,將接收到的日志內(nèi)容依次添加到Slave端的
relay-log
文件的最末端,并將讀取到的Master端的 bin-log的文件名和位置記錄到master-info
文件中,以便在下一次讀取的時(shí)候能夠清楚的高速M(fèi)aster“我需要從某個(gè)bin-log的哪個(gè)位置開始往后的日志內(nèi)容,請(qǐng)發(fā)給我”;(4)Slave的Sql進(jìn)程檢測(cè)到relay-log中新增加了內(nèi)容后,會(huì)馬上解析relay-log的內(nèi)容成為在Master端真實(shí)執(zhí)行時(shí)候的那些可執(zhí)行的內(nèi)容,并在自身執(zhí)行。
原則:
演示主機(jī)為Windows
(配置文件為my.ini
文件),從機(jī)為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ù)庫(kù)名字
。service iptables stop
;GRANT REPLICATION SLAVE ON *.* TO 'zhangsan'@'從機(jī)器數(shù)據(jù)庫(kù)IP' IDENTIFIED BY '123456';
。flush privileges;
。show master status;
CHANGE MASTER TO MASTER_HOST='主機(jī)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)容,你們對(duì)MYSQL數(shù)據(jù)庫(kù)的主從復(fù)制有進(jìn)一步的了解嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀。
免責(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)容。