mysql复制过滤需注意的跨库更新的问题

网上看到网友mysql5.5的数据库,在设置了复制过滤后,指定的database没有复制到slave,解决这个问题就是用Replicate_Wild_Do_Table代替Replicate_Do_DB。

我没有5.5的环境,就在5.7上测试了一把。

1.设置复制过滤只更新db1的数据。

slave:

mysql> stop slave sql_thread;
Query OK, 0 rows affected (0.03 sec)

mysql> change replication filter replicate_do_db=(db1);
Query OK, 0 rows affected (0.01 sec)

mysql> start slave sql_thread;
Query OK, 0 rows affected (0.02 sec)

2.正常的操作同步db1是没有问题的

master:

mysql> use db1
Database changed
mysql> select * from t1;
+------+
| id   |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)

mysql> insert into t1 values(3);
Query OK, 1 row affected (0.00 sec)

slave:

mysql> use db1
Database changed
mysql> select * from t1;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)
3.跨库更新发现没有问题,说明mysql5.7解决了之前5.5跨库更新的问题。

master:

mysql> use l5m
Database changed
mysql> insert into db1.t1 values(4);
Query OK, 1 row affected (0.00 sec)

mysql> select * from db1.t1;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
+------+
4 rows in set (0.00 sec)

slave:

mysql> select * from t1;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
+------+
4 rows in set (0.00 sec)


猜你喜欢

转载自blog.csdn.net/jolly10/article/details/80076376