配置mysql5.7多源複製

假設現在有三臺主機,兩臺主庫分別爲master1,master2,一臺從庫slave

1,在主庫上分別開啓二進制日誌,並且配置不同server-id;

     [mysqld]

     log-bin=mysql-bin

     server-id=1

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

     CREATE USER 'repl'@'%' IDENTIFIED BY 'password';

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

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

     SHOW MASTER STATUS;

     分別記錄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,繼續配置從庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章