2012-11-14 42 views
1

我需要複製某些數據庫,如下所示。複製不同的數據庫不同的從站

  -DB1---replicate to---> SLAVE_A 
     /
MASTER <--DB2---replicate to---> SLAVE_B 
     \ 
     -DB3---replicate to---> SLAVE_C 

說明的過程中here將工作做好,如果我控制主機和所有從服務器都,但不幸的是我只控制在此情況下,主。奴隸可能會在不同的國家,由其他管理員經營。

我擔心的是,在SLAVE_A配置可以很容易地改變複製不僅意DB1,但DB2和DB3爲好,這是不好的。

只希望我有限制性從複製的數據庫是,如果我能以某種方式從主,其中,從我已經能夠計算出,無法做到控制它。用戶具有對所有數據庫的複製特權或不具有複製特權,這是不幸的。

我失去了一些東西在這裏,或者這只是在MySQL的限制? 關於如何實現這一點的任何想法?

謝謝。

回答

-1

創建每個複製從不同的MySQL用戶,並只給你希望它有複製訪問該用戶訪問數據庫。

你可以閱讀更多在MySQL文檔:16.1.1.3. Creating a User for Replication

CREATE USER 'slave_a'@'some_slave_server' IDENTIFIED BY 'slavepass'; 
GRANT REPLICATION SLAVE ON `DB1`.* TO 'slave_a'@'some_slave_server'; 
FLUSH PRIVILEGES; 

然後分別重複奴隸B和C對DB 2和3。

+1

我想你上面的例子,當出現以下錯誤: #1221 - DB GRANT的不正確使用和全局權限 其實,我張貼問題之前嘗試過這一點。最好的我可以找到,複製是一個全球特權。它可以是全部數據庫,也可以沒有:( – ivorytux

1

在從服務器有可能篩選交易由重複-DO-DB重複,忽視-DB參數應用,包括在my.cnf文件或命令行選項。 同樣可以在主站來用二進制日誌-DO-DB或二進制日誌,忽略-DB但隨後 - 它限制了複製做主人一定的數據庫。所以對於你來說,更好的解決方案是過濾從機上的事務。

相關問題