• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 将基于二进制日志的复制主数据库添加到多源复制从数据库

    这些步骤假定在主服务器上启用了二进制日志记录(这是默认设置),从属服务器正在使用TABLE基于复制的存储库(在MySQL 8.0中是默认设置),并且您已启用复制用户并记录了当前的二进制日志位置。您需要知道当前MASTER_LOG_FILEMASTER_LOG_POSITION

    使用该CHANGE MASTER TO语句为复制从属服务器上的每个主服务器配置一个复制通道(请参见“复制通道”)。该FOR CHANNEL子句用于指定通道。例如,要向复制从属服务器添加master1master2作为主服务器,请使用mysql客户端CHANGE MASTER TO在从属服务器上两次发出该语句,如下所示:

    mysql> CHANGE MASTER TO MASTER_HOST="master1", MASTER_USER="ted", MASTER_PASSWORD="password", \
    MASTER_LOG_FILE='master1-bin.000006', MASTER_LOG_POS=628 FOR CHANNEL "master_1";
    mysql> CHANGE MASTER TO MASTER_HOST="master2", MASTER_USER="ted", MASTER_PASSWORD="password", \
    MASTER_LOG_FILE='master2-bin.000018', MASTER_LOG_POS=104 FOR CHANNEL "master_2";
    

    有关该CHANGE MASTER TO语句的完整语法和其他可用选项的信息,请参见“ CHANGE MASTER TO语句”。

    为了使复制从服务器只复制数据库db1master1,只有数据库db2master2,使用MySQL的客户端发出的CHANGE REPLICATION FILTER每个通道,类似这样的语句:

    mysql> CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE = ('db1.%') FOR CHANNEL "master_1";
    mysql> CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE = ('db2.%') FOR CHANNEL "master_2";
    

    有关该CHANGE REPLICATION FILTER语句的完整语法和其他可用选项的信息,请参见“ CHANGE REPLICATION FILTER语句”。