1#
2# Test if dynamic replication database filter rules are properly evaluated.
3#
4
5source include/have_binlog_format_statement.inc;
6source include/master-slave.inc;
7
8connection slave;
9--error ER_SLAVE_MUST_STOP
10SET @@GLOBAL.replicate_do_db="db1";
11--error ER_SLAVE_MUST_STOP
12SET @@GLOBAL.replicate_ignore_db="db2";
13
14connection slave;
15source include/stop_slave.inc;
16SET @@GLOBAL.replicate_do_db="db1";
17SET @@GLOBAL.replicate_ignore_db="db2";
18source include/start_slave.inc;
19connection master;
20
21CREATE DATABASE db1;
22CREATE DATABASE db2;
23CREATE DATABASE db3;
24
25# db is mentioned in do-db rules
26USE db1;
27CREATE TABLE t1 (a INT);
28
29# db is mentioned in ignore-db rules
30USE db2;
31CREATE TABLE t2 (a INT);
32
33# db is not mentioned in do-db or ignore-db rules
34USE db3;
35CREATE TABLE t3 (a INT);
36
37USE db1;
38INSERT INTO t1 VALUES (1);
39
40USE db2;
41INSERT INTO t2 VALUES (2);
42
43USE db3;
44INSERT INTO t3 VALUES (3);
45
46# Only db1 should be replicated to slave
47sync_slave_with_master;
48echo [on slave];
49SHOW DATABASES LIKE 'db%';
50SHOW TABLES IN db1 LIKE 't%';
51
52connection master;
53
54# Clean up
55connection master;
56DROP DATABASE IF EXISTS db1;
57DROP DATABASE IF EXISTS db2;
58DROP DATABASE IF EXISTS db3;
59--source include/rpl_end.inc
60
61connection slave;
62SET @@GLOBAL.replicate_do_db="";
63SET @@GLOBAL.replicate_ignore_db="";
64