Apache MySQL復(fù)制如何配置

小樊
83
2024-10-14 17:33:13
欄目: 云計(jì)算

配置 Apache MySQL 復(fù)制涉及多個(gè)步驟,包括設(shè)置主服務(wù)器和從服務(wù)器的配置文件。以下是一個(gè)基本的配置示例:

主服務(wù)器配置 (my.cnfmy.ini):

  1. [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 格式,它記錄了行的更改。

  2. 重啟 MySQL 服務(wù)以使更改生效。

從服務(wù)器配置 (my.cnfmy.ini):

  1. [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ù)器為只讀模式,以防止寫操作。

  2. 創(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è)置的密碼。

  3. 在從服務(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_namerecorded_log_position 分別替換為主服務(wù)器二進(jìn)制日志中的文件名和位置。

  4. 啟動(dòng)從服務(wù)器上的 MySQL 服務(wù)。

  5. 檢查復(fù)制狀態(tài):

    SHOW SLAVE STATUS\G;
    

    如果一切正常,你應(yīng)該能看到 Slave_IO_RunningSlave_SQL_Running 的狀態(tài)為 “Yes”。此外,Last_IO_ErrorLast_SQL_Error 應(yīng)該是空的,表示沒有發(fā)生錯(cuò)誤。

請(qǐng)注意,這只是一個(gè)基本的配置示例。在生產(chǎn)環(huán)境中,你可能需要根據(jù)具體需求進(jìn)行更多的配置和優(yōu)化。

0