您的位置:首页 > 数据库 > MySQL

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

2015-04-02 11:22 621 查看
在复制中,如果启用参数 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库也一样执行了复制操作。

整理自网络
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: