mysql master-slave-master-slave复制

时间:2011-01-20 22:27:19

标签: mysql mysqldump mysql-management

我有两台物理服务器。 我使用命令将一些数据库从server1复制到server2:

server1$ mysqldump -u root -q -p --delete-master-logs --flush-logs --extended-insert --master-data=1 --single-transaction --databases db1 db2 db3 db4>to_server2.sql

然后像往常一样导入它们

server2$ mysql -u root -p <to_server2.sql
server2上的my.cnf包括:

server-id               = 2
log_bin
binlog_format           = mixed
replicate_do_db         = db1,db2
transaction-isolation=READ-COMMITTED
server1上的my.cnf包括:

server-id               = 1
log_bin
binlog_format           = mixed
replicate_do_db         = db3,db4
transaction-isolation=READ-COMMITTED

然后我在两台服务器上发出change master以指向对方; SHOW SLAVE STATUS已在服务器2上包含Read_Master_Log_Pos,但无论如何都没有在此操作期间进行任何数据更改。

然后在两台服务器上启动slave。 SHOW SLAVE STATUS在server1和server2上看起来都很好。

问题: 每当在任何server1或server2上更改数据时,数据都会出现在服务器的binlog和其他服务器的mysqld-relay-bin日志中,但不会出现在slave数据库中。 Read_Master_Log_Pos更改但不更改slave数据库中的数据。 知道为什么吗?

1 个答案:

答案 0 :(得分:1)

答案是:它实际上是因为replicate_do_db betwin数据库名称中的昏迷。解决方案是在my.cnf中为每个要复制的数据库创建replicate_do_db语句