配置mysql5.7多源複製

假設如今有三臺主機,兩臺主庫分別爲master1,master2,一臺從庫slavemysql

1,在主庫上分別開啓二進制日誌,而且配置不一樣server-id;sql

     [mysqld]ide

     log-bin=mysql-binspa

     server-id=1日誌

2,分別在兩臺主庫建立一個專用於複製的用戶,而且賦予複製權限;
server

     CREATE USER 'repl'@'%' IDENTIFIED BY 'password';虛擬機

     GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';it

3,分別在兩個主庫執行狀態查詢,而且記錄查詢狀態;io

     SHOW MASTER STATUS;innodb

     分別記錄file,position,假設master1查詢結果爲file1,pos1,master2查存結果爲file2,pos2

4,配置從庫

    1),設置以下兩個變量值爲table;
             set global master_info_repository='TABLE';
             set global relay_log_info_repository='TABLE';

    2),分別執行以下設置語句:

            CHANGE MASTER TO

       MASTER_HOST='master1,

       MASTER_USER='repl',

       MASTER_PASSWORD='password',

       MASTER_LOG_FILE='file1',

       MASTER_LOG_POS=rpos1 for channel 'master1';


       CHANGE MASTER TO

       MASTER_HOST='master2,

       MASTER_USER='repl',

       MASTER_PASSWORD='password',

       MASTER_LOG_FILE='file2',

       MASTER_LOG_POS=rpos2 for channel 'master2';



3),啓動從庫複製

        同時啓動:

        start slave;

        也能夠分別啓動:

        start slave for channel 'master1';

        start slave for channel 'master2';

        同時中止:

        stop slave;

        也能夠分別中止:

        stop slave for channel 'master1';

        stop slave for channel 'master2';

注意:若是經過虛擬機來操做的過程當中,有拷貝虛擬機的狀況,好比經過拷貝master1來建立虛slave,

那麼極可能會出現從庫不能啓動問題,此時須要在從庫執行如下操做:

1,清空從庫如下表格:

     slave_master_info
     slave_relay_log_info
     slave_worker_info

     innodb_index_stats
     innodb_table_stats

2,中止mysqld服務,刪除數據目錄下的auto.cnf文件,從新啓動mysqld服務;

3,繼續配置從庫。

相關文章
相關標籤/搜索