配置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,继续配置从库。

相关文章
相关标签/搜索