mysql兩個(gè)數(shù)據(jù)庫怎么同步

小億
82
2024-09-13 11:30:48
欄目: 云計(jì)算

要實(shí)現(xiàn)MySQL兩個(gè)數(shù)據(jù)庫之間的同步,可以使用MySQL自帶的主從復(fù)制(Master-Slave Replication)功能。下面是配置主從復(fù)制的基本步驟:

  1. 在主服務(wù)器(Master)上設(shè)置: a. 修改my.cnf文件,通常位于/etc/mysql/my.cnf/etc/my.cnf。 b. 在[mysqld]部分添加以下內(nèi)容:

    server-id=1
    log-bin=mysql-bin
    binlog-do-db=<需要同步的數(shù)據(jù)庫名>
    binlog-format=row
    

    c. 重啟MySQL服務(wù)。 d. 登錄MySQL,創(chuàng)建一個(gè)專門用于同步的用戶并授權(quán):

    CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
    FLUSH PRIVILEGES;
    

    e. 查詢主服務(wù)器的二進(jìn)制日志文件名和位置:

    SHOW MASTER STATUS;
    

    記下FilePosition的值,稍后在配置從服務(wù)器時(shí)需要用到。

  2. 在從服務(wù)器(Slave)上設(shè)置: a. 修改my.cnf文件,通常位于/etc/mysql/my.cnf/etc/my.cnf。 b. 在[mysqld]部分添加以下內(nèi)容:

    server-id=2
    relay-log=relay-bin
    relay-log-index=relay-bin.index
    

    c. 重啟MySQL服務(wù)。 d. 登錄MySQL,配置主服務(wù)器信息:

    CHANGE MASTER TO
      MASTER_HOST='主服務(wù)器IP',
      MASTER_USER='repl',
      MASTER_PASSWORD='your_password',
      MASTER_LOG_FILE='從主服務(wù)器查詢到的File名',
      MASTER_LOG_POS=從主服務(wù)器查詢到的Position值;
    

    e. 啟動(dòng)從服務(wù)器同步:

    START SLAVE;
    

完成以上步驟后,從服務(wù)器將開始與主服務(wù)器進(jìn)行數(shù)據(jù)同步。你可以通過以下命令查看從服務(wù)器的同步狀態(tài):

SHOW SLAVE STATUS\G;

如果Slave_IO_RunningSlave_SQL_Running都顯示為"Yes",則表示同步正常進(jìn)行中。

注意:這里的同步是單向的,只有主服務(wù)器上的數(shù)據(jù)變更會(huì)反映到從服務(wù)器上。從服務(wù)器上的數(shù)據(jù)變更不會(huì)影響到主服務(wù)器。此外,在進(jìn)行數(shù)據(jù)庫同步前,請(qǐng)確保兩臺(tái)服務(wù)器的MySQL版本相同,并對(duì)數(shù)據(jù)庫進(jìn)行備份,以防止數(shù)據(jù)丟失。

0