すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ApsaraDB RDS for MySQLインスタンスに「OPERATION need to be execution set by ADMIN」というエラーメッセージが表示された場合はどうすればよいですか?

最終更新日:Dec 13, 2024

問題の説明

  • ストアドプロシージャ、関数、トリガー、イベント、またはビューを作成すると、次のいずれかのエラーが発生します。

  • オンプレミスデータベースからSQLステートメントをエクスポートし、RDSインスタンスでステートメントを実行すると、次のいずれかのエラーが発生します。

  • MySQL 5.6を実行するRDSインスタンスから論理バックアップファイルをダウンロードし、それらをRDSインスタンスまたはオンプレミスデータベースにインポートすると、次のいずれかのエラーが発生します。 エラーコードは、1227または1725であり得る。

  • MySQLステートメントを実行してパラメーターを変更すると、次のいずれかのエラーが発生します。

[Err] 1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation -- This error commonly occurs on an RDS instance that runs MySQL 5.6. 
ERROR 1725 (HY000) at line 1936: OPERATION need to be executed set by ADMIN -- This error commonly occurs on an RDS instance that runs MySQL 5.5.
ERROR 1227 (42000) at line 2984: Access denied; you need (at least one of) the SUPER privilege(s) for this operation 

には (少なくとも1つの) SUPER特権が必要です。

原因

  • データがRDSインスタンスにインポートされると、アカウントにSUPER権限が付与されている場合にのみ、特定のSQL文を実行できます。 ApsaraDB RDS for MySQLはSUPER権限を提供していません。 その結果、SQL文を削除する必要があります。

  • RDSインスタンスにはグローバルトランザクション識別子 (GTID) が割り当てられていません。

  • データベースアカウントには、MySQLステートメントを実行して特定のパラメーターを変更するための十分な権限がありません。 例: SET GLOBAL event_scheduler = 1。

解決策

  • DEFINERステートメントを削除します。

    1. SQLファイルを確認し、次の例に似たステートメントを削除します。

      DEFINER=`root`@`%`

    2. Linuxでは、次のコマンドを実行してステートメントを削除します。

      sed -ie 's/DEFINER[ ]*=[ ]*[^ ]*/ / ' your.sql
  • GTID_PURGEDステートメントを削除します。

    説明

    データをエクスポートするときは、-- set-gtid-purge=off設定をmysqldumpコマンドの末尾に追加して、GTID_PURGEDをコマンドから除外することができます。

    1. 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
  • アカウントの権限を確認します。 アカウントにSUPER権限がない場合は、アカウントにSUPER権限を付与するか、別のアカウントに切り替えて再試行してください。 アカウント管理の権限がない場合は、管理者に連絡してください。

適用範囲

  • ApsaraDB RDS for MySQL

よくある質問

特権アカウントを使用してテーブルを作成するときに、「ユーザー 'XXX' @ '%' からデータベース '__recycle_bin__' へのアクセスが拒否された」というエラーメッセージが表示された場合はどうすればよいですか?

MySQLでは、システムデータベースにカスタムテーブルを作成することはできません。 カスタムデータベースに移動するか、カスタムデータベースを作成してからテーブルを作成することをお勧めします。