本文主要給大家介紹MySQL實(shí)現(xiàn)主從復(fù)制的步驟,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對(duì)性,對(duì)大家的參考意義還是比較大的,下面跟筆者一起了解下mysql實(shí)現(xiàn)主從復(fù)制的步驟吧。
創(chuàng)新互聯(lián)公司的客戶(hù)來(lái)自各行各業(yè),為了共同目標(biāo),我們?cè)诠ぷ魃厦芮信浜?,從?chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對(duì)我們的要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。專(zhuān)業(yè)領(lǐng)域包括成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、電商網(wǎng)站開(kāi)發(fā)、微信營(yíng)銷(xiāo)、系統(tǒng)平臺(tái)開(kāi)發(fā)。
mysql主從原理:
1)至少需要2臺(tái)數(shù)據(jù)庫(kù)云服務(wù)器,一主一從,master開(kāi)啟bin-log功能。(bin-log功能用戶(hù)記錄主控增 加、刪除、修改、更新SQL的語(yǔ)句。)
2)異步復(fù)制的過(guò)程,有延遲,毫秒級(jí)別(延遲和你的網(wǎng)絡(luò)和性能、數(shù)據(jù)庫(kù)的量級(jí)有關(guān)),開(kāi)啟3個(gè)線(xiàn)程。分別是master開(kāi)啟io線(xiàn)程,slave開(kāi)啟io線(xiàn)程、sql線(xiàn)程。
3)從庫(kù)啟動(dòng) salve start,通過(guò)io線(xiàn)程、用戶(hù)名和密碼去連接master,master接收請(qǐng)求后,master io線(xiàn)程負(fù)責(zé)將bin-log內(nèi)容position位置點(diǎn)數(shù)據(jù)發(fā)給salve端。
4)slave io線(xiàn)程收到數(shù)據(jù)之后,會(huì)將內(nèi)容追加到本地relay-log中繼日志,同時(shí)會(huì)產(chǎn)生master.info文件(這次從哪臺(tái)機(jī)器同步,用戶(hù)名、密碼、bin-log文件名、position位置).
5)slave SQL線(xiàn)程實(shí)時(shí)監(jiān)測(cè)relay-log,如果這個(gè)日志內(nèi)容有更新,解析文件中的SQL語(yǔ)句,在本地去執(zhí)行。
實(shí)戰(zhàn):
1)master配置文件中開(kāi)啟bin-log,設(shè)置server-id
2)授權(quán)同步用戶(hù)和密碼
3)slave執(zhí)行change master綁定主庫(kù)
192.168.1.155(master)
192.168.1.156(salve)
注:關(guān)掉云服務(wù)器的防火墻和setenforce 0
主庫(kù)配置:
1.在mysql配置文件中加入
log-bin=mysql-bin(開(kāi)啟bin-log)
server-id=1(區(qū)分主從)
2.重啟數(shù)據(jù)庫(kù)
/etc/init.d/mysql restart
3.進(jìn)入數(shù)據(jù)庫(kù),創(chuàng)建一個(gè)新的用戶(hù),并授權(quán)允許同步
create user 'tongbu'@'192.168.1.156' identified by '123456';(創(chuàng)建用戶(hù))
grant replication slave on *.* to 'tongbu'@'192.168.1.156' identified by '123456';(授權(quán)給從庫(kù))
4.查看主庫(kù)狀態(tài)
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 990 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.01 sec)
從庫(kù)配置:
5.修改從庫(kù)配置文件
server-id = 2
6.重啟數(shù)據(jù)庫(kù)
/etc/init.d/mysql restart
7.在從云服務(wù)器上指定master IP和同步的pos點(diǎn)
進(jìn)入數(shù)據(jù)庫(kù):
change master to master_host='192.168.1.155' ,master_user='tongbu' ,master_password='123456' ,master_log_file='mysql-bin.000001' ,master_log_pos=990;
注:如果報(bào)錯(cuò)
ERROR 3021 (HY000): This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first
說(shuō)明slave正在運(yùn)行,stop slave;(關(guān)閉slave)
7.啟動(dòng)slave
start slave;
8.測(cè)試,在主庫(kù)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),查看從庫(kù)是否同步過(guò)來(lái)。
(本實(shí)驗(yàn)是成功的)
看完以上關(guān)于mysql實(shí)現(xiàn)主從復(fù)制的步驟,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識(shí)信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。