如何配置MySQL主從復(fù)制
MySQL主從復(fù)制是將一臺(tái)MySQL服務(wù)器的數(shù)據(jù)復(fù)制到另一臺(tái)MySQL服務(wù)器的過(guò)程。主服務(wù)器(也稱為主節(jié)點(diǎn))負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新,并將更改記錄到二進(jìn)制日志中。從服務(wù)器會(huì)從主服務(wù)器上拉取這些二進(jìn)制日志,并將其應(yīng)用到自己的數(shù)據(jù)庫(kù)中。這種配置方式可以提高數(shù)據(jù)的可用性和可靠性,同時(shí)也可以分擔(dān)主服務(wù)器的負(fù)載。
準(zhǔn)備工作
在開(kāi)始配置主從復(fù)制之前,我們需要確保兩臺(tái)MySQL服務(wù)器已經(jīng)正確安裝并且可以相互訪問(wèn)。我們還需要在主服務(wù)器上創(chuàng)建一個(gè)具有復(fù)制權(quán)限的用戶,并在從服務(wù)器上提供該用戶的憑據(jù)。
創(chuàng)建主服務(wù)器
現(xiàn)在,我們需要在主服務(wù)器上啟用二進(jìn)制日志,并配置服務(wù)器為可從服務(wù)器連接。要啟用二進(jìn)制日志,請(qǐng)?jiān)趍y.cnf配置文件中添加以下行:
log-bin=mysql-bin
接下來(lái),你需要在MySQL命令行中使用以下命令創(chuàng)建一個(gè)具有復(fù)制權(quán)限的賬戶:
CREATE USER 'repl'@'%.example.com' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.example.com';
FLUSH PRIVILEGES;
創(chuàng)建從服務(wù)器
在從服務(wù)器上,我們需要使用以下命令告訴服務(wù)器它將成為主服務(wù)器的從屬服務(wù)器:
CHANGE MASTER TO MASTER_HOST='master_host_name', MASTER_USER='replication_user_name', MASTER_PASSWORD='replication_password', MASTER_LOG_FILE='recorded_binary_log_filename', MASTER_LOG_POS=recorded_log_position;
在上面的命令中,主服務(wù)器的地址應(yīng)列為MASTER_HOST。replication_user_name和replication_password分別應(yīng)替換為在主服務(wù)器上創(chuàng)建的復(fù)制賬戶的憑據(jù)。recorded_binary_log_filename和recorded_log_position應(yīng)是主服務(wù)器上的對(duì)應(yīng)參數(shù)。你可以使用SHOW MASTER STATUS命令查看,如下:
SHOW MASTER STATUS;
配置完畢
現(xiàn)在你已經(jīng)完成了MySQL主從復(fù)制的配置。如果一切都正確,從服務(wù)器上應(yīng)該開(kāi)始異步地復(fù)制主服務(wù)器上的數(shù)據(jù)。