配置 Apache MySQL 復(fù)制涉及多個(gè)步驟,包括設(shè)置主服務(wù)器和從服務(wù)器的配置文件。以下是一個(gè)基本的配置示例:
主服務(wù)器配置 (my.cnf
或 my.ini
):
在 [mysqld]
部分添加以下內(nèi)容:
server-id=1
log_bin=/var/log/mysql/mysql-bin.log
binlog_do_db=your_database_name
binlog_format=ROW
請(qǐng)將 your_database_name
替換為你希望復(fù)制的數(shù)據(jù)庫名稱。server-id
是主服務(wù)器的唯一標(biāo)識(shí)符,log_bin
指定了二進(jìn)制日志的文件路徑。binlog_do_db
限制了哪些數(shù)據(jù)庫的更改會(huì)被記錄到二進(jìn)制日志中。binlog_format
定義了二進(jìn)制日志的事件格式,這里使用的是 ROW
格式,它記錄了行的更改。
重啟 MySQL 服務(wù)以使更改生效。
從服務(wù)器配置 (my.cnf
或 my.ini
):
在 [mysqld]
部分添加以下內(nèi)容:
server-id=2
relay_log=/var/log/mysql/mysql-relay-bin.log
log_slave_updates=1
read_only=1
這里,server-id
是從服務(wù)器的唯一標(biāo)識(shí)符,relay_log
指定了中繼日志的文件路徑。log_slave_updates
啟用從服務(wù)器將更新記錄到自己的二進(jìn)制日志中。read_only
設(shè)置從服務(wù)器為只讀模式,以防止寫操作。
創(chuàng)建一個(gè)用于復(fù)制的專用 MySQL 用戶,并授權(quán)訪問主服務(wù)器:
CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
請(qǐng)將 your_password
替換為你為該用戶設(shè)置的密碼。
在從服務(wù)器上設(shè)置主服務(wù)器的相關(guān)信息:
CHANGE MASTER TO
MASTER_HOST='master_server_ip',
MASTER_USER='repl',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position;
請(qǐng)將 master_server_ip
替換為主服務(wù)器的 IP 地址,your_password
替換為之前創(chuàng)建的用戶的密碼,recorded_log_file_name
和 recorded_log_position
分別替換為主服務(wù)器二進(jìn)制日志中的文件名和位置。
啟動(dòng)從服務(wù)器上的 MySQL 服務(wù)。
檢查復(fù)制狀態(tài):
SHOW SLAVE STATUS\G;
如果一切正常,你應(yīng)該能看到 Slave_IO_Running
和 Slave_SQL_Running
的狀態(tài)為 “Yes”。此外,Last_IO_Error
和 Last_SQL_Error
應(yīng)該是空的,表示沒有發(fā)生錯(cuò)誤。
請(qǐng)注意,這只是一個(gè)基本的配置示例。在生產(chǎn)環(huán)境中,你可能需要根據(jù)具體需求進(jìn)行更多的配置和優(yōu)化。