MysqlMySQL複製在
MySQL複製在mysql
上失敗。user
更改
我有一個簡單的 MySQL 5.6 主從設置,每當我對 mysql.user 表進行更改時都會失敗。master 設置為複制兩個數據庫,這兩個數據庫都不是 mysql 數據庫。binlog_format 設置為 ROW。
我在主伺服器上設置了一些 MySQL 使用者,供不同同事對數據庫進行更改,但在從伺服器上我只有一個使用者,即 Web 伺服器。
當我嘗試從主伺服器中刪除冗餘使用者時,從伺服器失敗並顯示以下消息:
Error 'Operation DROP USER failed for 'mysql_user'@'localhost'' on query. Default database: ''. Query: 'DROP USER 'mysql_user'@'localhost''
我不想一直跳過錯誤,因為我會時不時地對 mysql.user 表進行更改,並且很容易忘記檢查複製是否仍在進行。我沒有對複制進行任何監控設置,所以有幾次我對 mysql 表進行了更改,幾個小時內沒有人注意到,這影響了我們的生產 Web 伺服器。
非常感謝任何幫助。
注意你的錯誤資訊的一部分:
'mysql_user'@'localhost''
localhost單詞後有兩個引號。當該語句複製時,從數據庫伺服器找不到使用者並且複制停止。MySQL 5.7 有
DROP USER IF EXISTS user
形式,但在 MySQL 5.6 中你最好不要犯這樣的錯誤,或者更喜歡直接編輯 mysql 數據庫。更新:當您對將 MySQL 帳戶從主伺服器複製到從伺服器不感興趣時,您可能需要
replicate-ignore-db=mysql
添加$$ mysqld $$每個奴隸的部分。我更喜歡在從站進行過濾,因為主站的二進制日誌中的更改對將來的故障排除具有潛在的價值。