2013-09-16 54 views
5

的MySQL根據服務器忽略-DB作品的my.cnf據我所知,過濾MySQL的複製(忽略-DB)

binlog-ignore-db      = mysql 
replicate-ignore-db      = mysql 

我不知道,如果這個客戶端太的作品,可以任何人都可以解釋這種機制,我怎麼能夠從主人發送,但不接受客戶端。

爲什麼我想這樣做?我有多個奴隸「2奴隸」必須複製MySQL表,其他2不應覆蓋。每隔一張桌子將被複制。

讀這個:http://dev.mysql.com/doc/refman/5.6/en/replication-rules-db-options.html沒有讓我清楚。

回答

18

binlog-ignore-db是一個主端設置,它告訴主不記錄發生在列出的數據庫上的更改。

replicate-ignore-db是從端的設置,它告訴從忽略與上市DB

傳入日誌信息,當你想從一個單一的主複製不同的數據庫不同的奴隸典型的使用情況。主人必須記錄在所有數據庫中發生的所有變化(減去可能被binlog-ignore-db排除的變化,即不會在任何地方複製的數據庫)。每個從設備都將收到完整的二進制日誌,但只會複製與所選數據庫相關的更改(即數據庫而不是,該設備被replicate-ignore-db排除 - 此列表在每個從屬設備上會有所不同)。

mysql是系統數據庫,它應該從兩端忽略不計,除非你真的,真的真的知道你在做什麼)。

+0

感謝Randomseed,一個問題,所以爲了忽略來自主binlog-ignore-db的複製/ binlog [忽略來自master端]被使用,而忽略來自slave的結束你做replicate-ignore-db [忽略奴隸的結束]? – tike

+0

正確。備註:如果您想允許[時間點恢復](http://dev.mysql.com/doc/refman/5.6/en/point-in-time-recovery.html),則二進制日誌也很有用)。不要忽視數據庫而不考慮。另一方面,忽略數據庫會減小二進制日誌的大小(從而減少網絡流量)。 – RandomSeed