日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

RDS MySQL出現“OPERATION need to be executed set by ADMIN”報錯

問題描述

  • 在創建存儲過程、函數、觸發器、事件、視圖的時候出現如下錯誤。

  • 從本地數據庫導出SQL,在RDS上應用該SQL的時候出現如下錯誤。

  • 從RDS MySQL 5.6實例下載邏輯備份,導入到RDS或本地數據庫中,出現如下錯誤,錯誤代碼為1227和1725。

  • 執行MySQL語句修改參數時,出現如下錯誤。

[Err] 1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation --常見于RDS MySQL 5.6 
ERROR 1725 (HY000) at line 1936: OPERATION need to be executed set by ADMIN --常見于RDS MySQL 5.5
ERROR 1227 (42000) at line 2984: Access denied; you need (at least one of) the SUPER privilege(s) for this operation 

問題原因

  • 數據導入RDS MySQL實例時,SQL語句中含有需要Super權限的用戶才可以執行的SQL語句,而RDS MySQL不提供Super權限,因此需要刪除這類語句。

  • 本地MySQL實例沒有啟用GTID。

  • 因數據庫賬號權限不足,無法通過執行MySQL語句修改部分參數(例如SET GLOBAL event_scheduler = 1)。

解決方案

  • 刪除DEFINER語句。

    1. 檢查SQL文件,刪除類似以下SQL語句。

      DEFINER=`root`@`%`

    2. 在Linux系統中,可以嘗試使用以下命令刪除。

      sed -ie 's/DEFINER[ ]*=[ ]*[^ ]*/ / ' your.sql
  • 刪除GTID_PURGED語句。

    說明

    也可以導出的時候在mysqldump命令后添加參數“--set-gtid-purged=off“來取消輸出GTID_PURGED子句。

    1. 檢查SQL文件,刪除類似以下SQL語句。

      SET @@GLOBAL.GTID_PURGED='d0502171-3e23-11e4-9d65-d89d672af420:1-373, d5deee4e-3e23-11e4-9d65-d89d672a9530:1-616234';

    2. 在Linux系統中,可以嘗試使用類似以下命令刪除。

      awk '{ if (index($0,"GTID_PURGED")) { getline; while (length($0) > 0) { getline; } } else { print $0 } }' your.sql | grep -iv 'set @@' > your_revised.sql
  • 請檢查您的權限后更換賬號,或對賬號賦權后重新執行。如果您本人無權限操作賬號,請聯系您的管理員。

適用于

  • 云數據庫RDS MySQL版

常見問題

Q:高權限賬號在新建表時,報錯“Access denied for user 'XXX'@'%' to database '__recycle_bin__'”該如何解決?

A:MySQL不推薦或不允許在系統數據庫中建立自定義表,建議切換至自定義庫或新建自定義庫后,再執行建表語句。