关于复制的一些参数
replicate_do_db: 表示需要复制的数据库,如果有多个数据库需要同步, 那么只要重复增加这个参数就可以, 一个replicate-do-db只能指定一个需要复制的数据库;注意,类似 UPDATE some_db.some_table SET foo='bar'这样的跨库操作语句以及没有选中数据库的操作都不会被同步。如果必须使用跨库操作,要确保使用MySQL 3.23.28或更高,并且使用–replicate-wild-do-table=db_name.%选项
replicate-do-table:指定需要复制的表;
replicate-wild-do-table=db_name.db_tables; 指定需要复制的数据库表;可以使用通配符%或_; 例如 replicate-wild-do-table=test.cwmobjectvarchar%, test.cwmobjectblob%
还存在一些问题
不管有没有replicate-wild-do-table
选项,更新操作必须是mysql
连接已经有选择的数据库了才进行,譬如新建的mysql
(新连接是没有默认选择的database
的)连接中执行:
UPDATE test.client SET name='test' WHERE uid=1;
这条更新无法同步到备机,必须在update
前use database
操作,该database
必须是replicate-wild-do-table
中指定的database
。
保险的解决方式
:连接上mysql
后,调用mysql_select_db()
选择数据库,之后进行的更新操作就可以自动同步了。