1. 三者的联系
1.1. 设置 binlog-do-db 与 binlog-ignore-db
[mysqld] binlog-do-db = db01 binlog-ignore-db = db02 1.2. 不同 binlog format 下进行测试
1.2.1. STATEMENT
- 没有 use dbname 或者 use db02
create table db01.table01(id int primary key auto_increment); insert into db01.table01 values(1); create table db02.table01(id int primary key auto_increment); insert into db02.table01 values(1); 结果:binlog 没有记录 DDL 或者 DML 语句。
说明:如果未选择数据库或者选择的并不是 binlog-do-db 包含的数据库,则不会记录。
- use db01
结论:DDL 和 DML 全部被记录。不过令人遗憾的是,就连我们希望忽略的 db02 也会出现在 binlog 中。
1.2.2. ROW
- 没有 use dbname 或者 use db02
结论:DDL 没有被记录;DML 被记录。
- use db01
结论:有关 db01 的 DDL 或 DML 能够全部记录,对于其它表只能记录 DML。
1.2.3. MIXED
- 未选择数据库或者 use db02
结论:忽略了所有 DDL 和 DML,包括希望记录的 db01。
- use db01
结论:任何 DDL 和 DML 全被记录。不过,希望被忽略的 db02 也会被记录,但似乎记录方式有所区别,可以自行测试。
来源:51CTO
作者:曾经是等的人
链接:https://blog.csdn.net/qq_39291919/article/details/100135199