MySQL 8主從復(fù)制配置詳解,你學(xué)會(huì)了嗎?
1、配置主服務(wù)器
在主服務(wù)器上進(jìn)行以下操作:
(1)開(kāi)啟二進(jìn)制日志
打開(kāi)MySQL配置文件 my.cnf,在 [mysqld] 段下添加如下行:
log-bin 指定二進(jìn)制日志文件的名稱,mysql-bin是默認(rèn)的二進(jìn)制日志前綴,后面會(huì)跟一個(gè)數(shù)字標(biāo)識(shí)。如果不指定則使用默認(rèn)名稱。
(2)創(chuàng)建復(fù)制用戶
創(chuàng)建用于從服務(wù)器復(fù)制數(shù)據(jù)的用戶,比如repl。打開(kāi)MySQL控制臺(tái),執(zhí)行如下命令:
在創(chuàng)建用戶時(shí),可以指定用戶的IP地址和密碼。在授予權(quán)限時(shí),需要授予REPLICATION SLAVE權(quán)限。
2、配置從服務(wù)器
在從服務(wù)器上進(jìn)行以下操作:
(1)開(kāi)啟復(fù)制功能
打開(kāi)MySQL配置文件 my.cnf,在 [mysqld] 段下添加如下行:
server-id 是唯一標(biāo)識(shí)從服務(wù)器的ID,必須保證主服務(wù)器和從服務(wù)器的server-id不同。
(2)連接主服務(wù)器
在從服務(wù)器上使用CHANGE MASTER TO命令連接到主服務(wù)器,并設(shè)置主服務(wù)器的IP地址、端口號(hào)、用戶名、密碼、當(dāng)前正在寫入的二進(jìn)制日志文件的名稱和位置。例如:
其中,MASTER_HOST、MASTER_PORT、MASTER_USER和MASTER_PASSWORD分別對(duì)應(yīng)主服務(wù)器的IP地址、端口號(hào)、用戶名和密碼;MASTER_LOG_FILE和MASTER_LOG_POS分別對(duì)應(yīng)主服務(wù)器當(dāng)前正在寫入的二進(jìn)制日志文件的名稱和位置。
(3)啟動(dòng)復(fù)制進(jìn)程
執(zhí)行START SLAVE命令啟動(dòng)從服務(wù)器的復(fù)制進(jìn)程:
在啟動(dòng)復(fù)制進(jìn)程之后,可以使用SHOW SLAVE STATUS命令查看當(dāng)前復(fù)制狀態(tài):
其中,Slave_IO_State和Slave_SQL_State分別表示復(fù)制進(jìn)程的狀態(tài)和SQL進(jìn)程的狀態(tài);Seconds_Behind_Master表示從服務(wù)器距離主服務(wù)器的延遲時(shí)間,如果值為0,則表示主從復(fù)制已經(jīng)正常工作。
通過(guò)以上步驟,就可以在MySQL 8中實(shí)現(xiàn)主從復(fù)制配置。需要注意的是,在配置過(guò)程中,需要保證主服務(wù)器和從服務(wù)器之間的網(wǎng)絡(luò)暢通,同時(shí)需要保證主服務(wù)器和從服務(wù)器的系統(tǒng)時(shí)間一致。