binlog-ignore-db
是一个master节点设置,控制主服务器不记录指定数据库的binlog
如何查看binlog-ignore-db的值?
show master status;
show binary logs status;
repliC++ate-do-db
是一个slave端设置,控制从服务器回放指定数据库的binlog
show slave status;
show replica status;
replica-ignore-db
是一个slave端设置,控制从服务器不回放指定数据库的binlog
show slave status;
show replica status;
然而,以上两个参数本身就是一种怪胎一般的存在,只对切换到当前数据库下的语句生效,同时与主节点的binlog格式有关,对于非当前库下,带库名的操作,比如在DB01库下执行update DB02.table set c2 = *** where id =1就不生效,既然有替代参数,为什么不废弃这两个参数,搞不懂MySQL为什么放任这个坑一直存在
主节点不记录binlog参数
--是一个master主节点设置,控制主服务器不记录指定数据库的binlog
binlog-ignore-db
--假如主节点上,想忽略test库所有的表写binlog
--用binlog-wild-ignore-table替代binlog-ignore-db
binlog-ignore-db= test
binlog-wild-ignore-table=test.%
--如何查看binlog-ignore-db的值?
show master status;
show binary logs status;
从节点忽略不应用binlog(relay log)参数
--是一个slave端设置,控制从服务器回放指定数据库的binlog
replica-ignore-db
--假如从节点上,想忽略test库所有表的binlog的回放
--用replicate-wild-ignore-table替代replica-ignore-db
replica-ignore-db = test
replicate-wild-ignore-table=test.%
--如何查看replica-ignore-db的值?
show slave status;
show replica status;
--然而,以上两个参数本社就是一种怪胎,只对切换到当前数据库下的语句生效,对于非当前库下,带库名的操作,比如在DB01库下执行update DB02.table set c2 = *** where id =1就不生效
搞不懂mysql为什么放任这个坑一直存在
反正不纠结了,从节点上同时使用do_db和db_table两个参数
想复制就用两个do参数叠加
replicate-do-db=A.%
replicate-wild-do-table=A.%
不相复制就用两个ignore参数叠加
replicate-ignore-db=B.%
replicate-wild-ognore-table=B.%