MySQL主從復(fù)制是一種常見的數(shù)據(jù)庫架構(gòu)模式,用于提高數(shù)據(jù)庫的可用性和性能。以下是一個基本的步驟指南,幫助你配置MySQL主從復(fù)制:
確保你有一臺主服務(wù)器(Master)和一臺或多臺從服務(wù)器(Slave)。所有服務(wù)器都應(yīng)該安裝并運(yùn)行相同版本的MySQL。
編輯MySQL配置文件:
打開主服務(wù)器的MySQL配置文件(通常是my.cnf
或my.ini
),找到以下部分并進(jìn)行配置:
[mysqld]
server-id=1 # 主服務(wù)器的唯一標(biāo)識符
log_bin=mysql-bin # 啟用二進(jìn)制日志
binlog_format=ROW # 使用ROW格式的二進(jìn)制日志
重啟MySQL服務(wù): 保存配置文件并重啟MySQL服務(wù)以應(yīng)用更改:
sudo systemctl restart mysql
創(chuàng)建用于復(fù)制的用戶: 在主服務(wù)器上創(chuàng)建一個用于復(fù)制的用戶,并授予該用戶必要的權(quán)限:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
獲取主服務(wù)器的二進(jìn)制日志坐標(biāo): 記錄下主服務(wù)器的二進(jìn)制日志文件和位置,以便從服務(wù)器可以連接并開始復(fù)制:
SHOW MASTER STATUS;
編輯MySQL配置文件:
打開從服務(wù)器的MySQL配置文件(通常是my.cnf
或my.ini
),找到以下部分并進(jìn)行配置:
[mysqld]
server-id=2 # 從服務(wù)器的唯一標(biāo)識符
relay_log=mysql-relay-bin # 啟用中繼日志
log_bin=mysql-bin # 啟用二進(jìn)制日志(如果還沒有啟用的話)
binlog_format=ROW # 使用ROW格式的二進(jìn)制日志
read_only=ON # 從服務(wù)器默認(rèn)只讀
重啟MySQL服務(wù): 保存配置文件并重啟MySQL服務(wù)以應(yīng)用更改:
sudo systemctl restart mysql
配置從服務(wù)器連接到主服務(wù)器: 在從服務(wù)器上,使用之前獲取的二進(jìn)制日志坐標(biāo)來配置復(fù)制:
CHANGE MASTER TO
MASTER_HOST='master_ip_address', # 主服務(wù)器的IP地址
MASTER_USER='repl', # 用于復(fù)制的用戶名
MASTER_PASSWORD='password', # 用于復(fù)制的密碼
MASTER_LOG_FILE='recorded_binlog_file', # 記錄的二進(jìn)制日志文件名
MASTER_LOG_POS=recorded_binlog_position; # 記錄的二進(jìn)制日志位置
啟動復(fù)制進(jìn)程: 啟動從服務(wù)器的復(fù)制進(jìn)程以開始同步數(shù)據(jù):
START SLAVE;
驗(yàn)證復(fù)制狀態(tài): 檢查從服務(wù)器的復(fù)制狀態(tài)以確保一切正常:
SHOW SLAVE STATUS\G;
通過以上步驟,你應(yīng)該能夠成功配置MySQL主從復(fù)制。如果在配置過程中遇到問題,可以參考MySQL官方文檔或?qū)で笊鐓^(qū)幫助。