
我厭倦了從 GCP 存儲中的 sql 文件恢復 MySQL 數據庫,步驟是將數據庫備份文件上傳到 GCP 存儲,然後將此 sql 文件導入到 GCP MySQL 實例中的指定數據庫,花了一段時間,發生了異常,即
Import error: exit status 1 ERROR 1227 (42000) at line 10871: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
然後我嘗試向 root 或任何其他用戶授予超級權限,但無論如何它都不起作用,但它不允許我授予超級權限,我不知道如何解決這個問題,任何幫助都會很大讚賞的
更新(2020年1月17日):我已經解決的問題
我試圖找到發生例外的行
$ sed -n -e 10870p -e 10871p -e 10872p -e 10873p 範例.sql
我發現
/*!50013 DEFINER= root
@SQLlocalhost
安全定義器 */
然後我用這個命令刪除了有問題的語句
貓範例.sql | sed -e 's/DEFINER= root
@ localhost
//g' > example-CLEANED.sql
然後就完成了
答案1
應該CURRENT_USER
有SUPER
特權,但目前DEFINER
沒有。再次轉儲它mysqldump --skip-definer
(將是最省力的)。如果這不應該是一個選項,請編輯轉儲並刪除DEFINER
,或將所有出現的 替換為CURRENT_USER
。SET
轉儲中的某些語句最終也可能導致該問題。