mysql主從只同步部分庫或表
同步部分資料有兩個思路,1.master只發送需要的;2.slave只接收想要的。
master端:
binlog-do-db 二進位制日誌記錄的資料庫(多資料庫用逗號,隔開)
binlog-ignore-db 二進位制日誌中忽略資料庫 (多資料庫用逗號,隔開)
舉例說明:
1)binlog-do-db=YYY 需要同步的資料庫,不在內的不同步。(不新增這行表示同步所有)
這裡主庫只同步test1,test2庫。
2)binlog-ignore-db = mysql 這是不記錄binlog,來達到從庫不同步mysql庫,以確保各自許可權
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
這裡向從庫同步時忽略test1,test2庫
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的相關日誌,只是從庫沒有使用罷了。
增加萬用字元的兩個配置
replicate-wild-do-table=db_name.% 只複製哪個庫的哪個表
replicate-wild-ignore-table=mysql.% 忽略哪個庫的哪個表
【完】