MySQL 5.5主从关于‘复制过滤’的深入探究(3)

库操作:
    1. 主库不use,执行建库语句
    mysql> create database kai;
    从库复制
    2. 主库use  mysql,再执行
    mysql> create database kai;
    从库复制

在kai数据库执行建表操作
    1. 不use
    create table kai.li (id int,name char(15));
    从库复制
    2. use mysql;
    create table kai.li (id int,name char(15));
    从库复制
    3. use 其他库;
    create table kai.li (id int,name char(15));
    从库复制

对表内容修改:
    1. 主库不use,向li表增加数据
    insert into kai.li values('1','ljk');
    从库复制
    2. 主库 use mysql,向li表增加数据
    从库复制
    3. 主库use 其他库,更新li库(即跨库更新)
    mysql> use picture;
    mysql> insert into kai.li values('2','lhy');
    从库复制

对mysql库进行更改
    1. 不 use
    mysql> create table mysql.ljk (id int,name varchar(15));
    从库不复制
    2. Use 其他库
    mysql> drop table mysql.ljk;
    从库不复制
    3. Use mysql
    mysql> create table ljk (id int,name varchar(15));
    从库不复制

 

综上参考官方文档以及实验,可得出结论:

对于每一个添加的‘复制过滤’配置,应从两方面考虑:

    1. 不用use语句引用库,或者use xxx引用其他库之后再执行sql(又分两部分:对‘过滤的库/表’ 或 ‘对其他库/表’)会怎样

    2. use xxx引用‘过滤的库/表’,再执行sql(也分两部分:对‘过滤的库/表’ 或 ‘对其他库/表’)会怎样

replicate-wild-do-table=/replicate-wild-ignore-table=外,其他过滤规则会受到“binlog_format”以及“当前所在库”的影响(即所谓的跨库问题)

实验也验证了上文提到的“对复制的过滤,采用replicate-wild-do-table/ replicate-wild-ignore-table,比较严格和明确

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/72cc475f8b1b90ed7e8241958e712e4f.html