同步部分数据有两个思路,1.master只发送需要的;2.slave只接收想要的。
master端:
binlog-do-db 二进制日志记录的数据库(多数据库用逗号,隔开)
binlog-ignore-db 二进制日志中忽略数据库 (多数据库用逗号,隔开)
举例说明:
1)binlog-do-db=YYY 需要同步的数据库,不在内的不同步。(不添加这行表示同步所有)
这里主库只同步test1,test2库。
![](https://oscimg.oschina.net/oscnet/f3ea11b94711747fb24a00ba4055e57fab4.jpg)
2)binlog-ignore-db = mysql 这是不记录binlog,来达到从库不同步mysql库,以确保各自权限
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
这里向从库同步时忽略test1,test2库
![](https://oscimg.oschina.net/oscnet/ee8aa2ac51f1328f058b7600a97a3811ceb.jpg)
slave端
replicate-do-db 设定需要复制的数据库(多数据库使用逗号,隔开)
replicate-ignore-db 设定需要忽略的复制数据库 (多数据库使用逗号,隔开)
replicate-do-table 设定需要复制的表
replicate-ignore-table 设定需要忽略的复制表
replicate-wild-do-table 同replication-do-table功能一样,但是可以通配符
replicate-wild-ignore-table 同replication-ignore-table功能一样,但是可以加通配符
与上述对比,这里的replicate就很好理解了,下面简单说几点。
例如:
从库忽略复制数据库test3,但是需要说明的是,其实从库的relaylog中是从在关于test3的相关日志,只是从库没有使用罢了。
![](https://oscimg.oschina.net/oscnet/278bccf40a91f9ef1189f9dea9f70aab558.jpg) ![](https://oscimg.oschina.net/oscnet/8e9e910980e96ad08d6aeb94e1e7151af70.jpg)
增加通配符的两个配置
replicate-wild-do-table=db_name.% 只复制哪个库的哪个表
replicate-wild-ignore-table=mysql.% 忽略哪个库的哪个表