同步部分数据有两个思路:mysql
- master只发送须要的;
- 优势:中继日志小;若是多从库,只须要在主库中统一控制
- 缺点:中途修改比较麻烦,不能控制同步的表
- slave只接收想要的
- 优势:中途修改同步的表或库方便;能够控制须要的表和库
- 缺点:中继日志大;若是从库比较多,须要一个一个配置;
master端sql
binlog-do-db 二进制日志记录的数据库(多数据库用逗号,隔开)数据库
binlog-ignore-db 二进制日志中忽略数据库 (多数据库用逗号,隔开)spa
例1:日志
binlog-do-db=zn,zn1,zn2 #须要同步的数据库,不在内的不一样步。(不添加这行表示同步全部) binlog-do-db=zn binlog-do-db=zn1 binlog-do-db=zn2
配置同步的表:code
些版本操做失败,mysql服务没法启动orm
binlog-do-table 二进制日志记录的数据的blog
例2同步
binlog-ignore-db = mysql # 这是不记录binlog,关闭全部从库同步,以确保各自权限 binlog-ignore-db = performance_schema binlog-ignore-db = information_schema
slave端io
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功能同样,可是能够加通配符
例1:
从库忽略复制数据库test3,可是须要说明的是,其实从库的relaylog中是从在关于test3的相关日志,只是从库没有使用罢了。
增长通配符的两个配置
replicate-wild-do-table=db_name.% #只复制哪一个库的哪一个表 replicate-wild-ignore-table=mysql.% #忽略哪一个库的哪一个表