在MySQL數(shù)據(jù)庫中,主從復(fù)制是非常常見的數(shù)據(jù)拷貝方式,它可以實現(xiàn)數(shù)據(jù)的備份與讀寫分離,提高數(shù)據(jù)庫的性能與可靠性。但有時候由于各種原因,主從同步出問題,此時需要重建主從關(guān)系,下面我們來介紹如何重建MySQL 5.7的主從復(fù)制。
第一步:停止主從復(fù)制
STOP SLAVE; RESET SLAVE;
這樣可以讓從服務(wù)器斷開與主服務(wù)器的連接并清空存儲在從服務(wù)器上的同步狀態(tài)信息。
第二步:在主服務(wù)器上創(chuàng)建一個新用戶
CREATE USER 'replica'@'%' IDENTIFIED BY 'mypassword'; GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
這里我們創(chuàng)建了一個名為replica的用戶,并授權(quán)其訪問所有數(shù)據(jù)庫及表,并且將授權(quán)范圍限制在所有IP地址上。
第三步:備份主服務(wù)器上的數(shù)據(jù)庫
mysqldump --all-databases --master-data >dbdump.db
這個命令用于備份主服務(wù)器上的所有數(shù)據(jù)庫,并且包含了二進(jìn)制日志文件名及其文件位置。 --master-data參數(shù)可以讓MySQL在備份時自動記錄當(dāng)前二進(jìn)制日志的文件名及其位置。
第四步:恢復(fù)備份到從服務(wù)器上
mysql< dbdump.db
把備份文件在從服務(wù)器上還原。
第五步:配置從服務(wù)器的主從同步信息
在從服務(wù)器上配置主服務(wù)器信息
CHANGE MASTER TO MASTER_HOST='master_host_ip', MASTER_USER='replica', MASTER_PASSWORD='mypassword', MASTER_LOG_FILE='binlog.000001', MASTER_LOG_POS=120;
這個命令用于配置從服務(wù)器的主從同步信息,包括主服務(wù)器的IP地址、用戶名、密碼,以及備份文件所包含的二進(jìn)制日志文件名及其文件位置。
啟動從服務(wù)器的主從同步
START SLAVE; SHOW SLAVE STATUS \G
這里我們啟動從服務(wù)器的主從復(fù)制,并通過SHOW SLAVE STATUS命令來查看同步狀態(tài),以此來確保主從復(fù)制已成功重建。
總體來說,MySQL 5.7的主從復(fù)制是非常穩(wěn)定與可靠的,但由于各種原因,有時候我們還是需要重建主從關(guān)系,希望以上的步驟能為大家提供幫助。