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