同步部分數據有兩個思路: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.% #忽略哪一個庫的哪一個表