MySQL复制,replicate-ignore-db模式下 如何正常同步

在复制中,如果启用参数 replicate-ignore-db / replicate-do-db 后想要让复制正常运行,只需在连接数据库后不执行 "use db" 语句即可,如果是在php中,连接数据库后,不再执行 mysql_select_db() 即可。这是因为复制机制会判断是否使用了 replicate-do(ignore)-db 参数,然后判断当前数据库是否为指定的数据库,如果是,才执行相应的binlog,否则略过。如果不指定数据库的话,就可以忽略这个环节了。(by yejr)
做个试验:
我的主配置如下:
server-id       = 1
binlog-do-db=sakila
binlog-do-db=community
binlog-ignore-db=mysql
我的从配置如下:
read-only
server-id=2
master-host=192.168.216.132
master-user=slave
master-password=slave
master-port=3306
replicate-do-db=sakila
replicate-do-db=community
---------------------------------
主从都有 test库和mysql库,mysql库是被ignore的,test库并没有定义do还是ignore。现在这两种情况都试一下。
主库上执行:(没有用use mysql)
mysql> create table  mysql.aaaa (a  date not null);
Query OK, 0 rows affected (0.01 sec)
丛库上查看:(mysql里创建了aaaa表)
mysql> desc mysql.aaaa;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| a     | date | NO   |     | NULL    |       |
+-------+------+------+-----+---------+-------+
1 row in set (0.00 sec)

同理在test库也一样执行了复制操作。

整理自网络


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值