Mysql

防止對 MySQL 從站的非複制寫入?

  • August 2, 2017

為了提高性能,我們有一些 MySQL 數據庫伺服器設置了基於行的複制。軟體寫入主機,並從主機或從機讀取。在大多數情況下,一切都很好。

我的理解是 MySQL 將允許寫入從屬伺服器,即使它知道它是 MySQL 從屬伺服器。理想情況下,我有點想關閉它,所以即使有人編寫了一些錯誤的程式碼來獲得讀取連接並執行UPDATE,它也會拋出錯誤而不是將數據放在從站上。

有沒有辦法在 MySQL 中做到這一點?顯然,我們也希望通過我們的軟體使這成為不可能,但就像我們伺服器上的防火牆一樣,我希望盡可能地採取防禦措施。

謝謝!

read-only在 my.cnf 中啟用該選項。也可以使用--read-onlymysqld 在命令行上將其指定為標誌。

作為設置的替代方案read_only=1(例如,當從屬實例上有其他暫存器/報告/開發數據庫時),我有時會從所有使用者剝離除 SELECT 之外的所有權限到我正在複製的數據庫。

也就是說,在master上執行GRANT命令後,我在slave上執行REVOKE命令。

引用自:https://serverfault.com/questions/176264