Mysql

MySQL主從複製跨數據庫

  • September 21, 2012

我正在為跨數據庫設置複製,因為我在 Slave 的 my.cnf 中將 2 個變數設置為 replicate-do-db=database_name 和 Replicate-wild-do-table=database_name.% ,但我無法交叉從 master 到 slave 的數據庫更新。請幫我解決問題。

我在 2012 年 6 月 14 日解決了類似的問題:配置了 MySQL 複製但它不起作用

基本問題可能是您正在使用的查詢

如果您有一個看起來像這樣的查詢

INSERT INTO db1.tb SELECT * FROM db2.tb;

您可能會阻止這種性質的查詢

像這樣的查詢:

USE db1
INSERT INTO tb SELECT * FROM db2.tb;

如果你有replicate-do-db=db1並且應該工作Replicate-wild-do-table=db.%

可以肯定的是,檢查復製過濾規則以確保您的查詢允許您目前的設置在從站上工作。

根據複製過濾規則

為了更容易確定選項集將產生什麼影響,建議您避免混合“do”和“ignore”選項,或萬用字元和非萬用字元選項。後者可能產生意外影響的一個範例是一起使用 –replicate-do-db 和 –replicate-wild-do-table,其中 –replicate-wild-do-table 使用數據庫名稱的模式與為 –replicate-do-db 指定的名稱相匹配。假設複製從屬以–replicate-do-db=dbx –replicate-wild-do-table=db%.t1 啟動。然後,假設在主伺服器上發出語句 CREATE DATABASE dbx。儘管您可能會預料到,但不會複製此語句,因為它沒有引用名為 t1 的表。

也許您需要擺脫從站上的這些規則之一併在從站上重新啟動 mysql。

引用自:https://dba.stackexchange.com/questions/24647