忽略某个库的复制有两个参数:binlog_ignore_db,replicate-ignore-db 区别: binlog_ignore_db参数是设置在主库上的,例如,binlog_ignore_db=test,那么针对test库下的全部操做都不会记录下来, 这样slave在接收主库的binlog时文件量就会减小,这样能够减小网络I/O,减小slave端I/O线程的I/O量,从而最大幅度优化复制性能,有隐患。 隐患:create table test.number3 like test.number;没有binlog日志记录,必须use test,而后再执行就能够了mysql
replicate-ignore-db参数是设置在从库上的,例如,replicate-ignore-db=test,那么针对test库下的全部操做都不会被SQL线程执行, 在安全上能够保证master和slave数据的一致性。sql
若是想在slave上忽略一个库的复制,最好不要用binlog_ignore_db这个参数,使用replicate-ignore-db = yourdb取代之。数据库
replicate_ignore_db也有隐患:缘由是设置replicate_ignore_db后,MySQL执行sql前检查的是当前默认数据库,因此跨库更新语句在Slave上会被忽略。安全
能够在Slave上使用 replicate_wild_do_table 和 replicate_wild_ignore_table 来解决跨库更新的问题,如: replicate_wild_do_table=test.%或replicate_wild_ignore_table=mysql.% 这样就能够避免出现上述问题了网络