Mysql

通過 mysqlbinlog 更新 RDS db:“你需要(至少一個)超級權限”

  • June 6, 2012

我們正在將生產站點遷移到 EC2/RDS

遵循這些說明: http: //geehwan.posterous.com/moving-a-production-mysql-database-to-amazon

我在生產伺服器上設置了基於行的二進制日誌記錄:

mysqldump –single-transaction –master-data=2 -C -q -u root -p > backup.sql

然後導入到 RDS 實例。沒有劇情。

由於數據庫的大小和最小的停機時間要求,我必須通過二進制日誌將 ec2 數據庫更新為最新數據,但它不會讓我這樣做。

mysqlbinlog mysql-bin.000004 –start-position=360812488 | mysql -uroot -p -h

它說:

第 6 行的錯誤 1227 (42000):訪問被拒絕;您需要(至少一個)超級權限才能執行此操作

根據 binlog 第 6 行的內容,我的猜測是它是 SQL 備份中的“寫入 BINLOG”語句,並且由於 RDS 不支持這一點,它無法執行這些語句,或者其他什麼,我真的不知道。

請幫忙。

這很可能是因為mysqlbinlogBINLOG命令作為第一個命令寫入輸出,並且執行該命令需要SUPER您在 RDS 上沒有的權限。

要刪除該命令使用--base64-output=NEVER選項(注意,它也需要--read-from-remote-server --host=localhost --user username --password)。

然而,在你克服了這個問題之後,可能還有另一個問題,這次是使用寫入輸出的@@session命令。mysqlbinlog他們還需要SUPER特權。

我還沒有找到更好的方法sed -i '/SET @@session/d' binlog_dump.sql來刪除它們,然後執行導入 MySQL。

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