Amazon RDS for MySQL DB インスタンスの関数、プロシージャ、トリガーを有効にするにはどうすればよいですか?

所要時間1分
0

Amazon Relational Database Service (Amazon RDS) for MySQL DB インスタンスの関数、プロシージャ、トリガーを有効にしたいと考えています。

解決策

Amazon RDS はマネージド型サービスです。システムアクセス (SUPER 権限) は提供されません 。バイナリログ記録を有効にする場合は、DB インスタンスのカスタムデータベース (DB) パラメータグループで log_bin_trust_function_creatorstrue に設定します。

DB パラメータグループを指定せずに DB インスタンスを作成した場合、Amazon RDS は新規のデフォルト DB パラメータグループを作成します。詳細については、「パラメータグループを使用する」をご参照ください。

Amazon RDS for MySQL DB インスタンスの関数、プロシージャ、トリガーを有効にするには、次の手順を実行します。

  1. DB パラメータグループを作成します
  2. カスタム DB パラメータグループを変更し、次のパラメータを設定します: log_bin_trust_function_creators=1
  3. [変更を保存] を選択します。
    注: この DB パラメータグループは、5 分以上待ってから DB インスタンスで使用します。
  4. ナビゲーションペインで [データベース] を選択します。
  5. DB パラメータグループに関連付ける DB インスタンスを選択します。
  6. [変更] を選択します。
  7. DB インスタンスに関連付けるパラメータグループを選択します
  8. DB インスタンスを再起動します

注: パラメータグループ名はすぐに変更されますが、パラメータグループの変更は、フェイルオーバーなしでインスタンスを再起動するまで適用されません。

既にカスタムパラメータグループを使用している場合は、手順 2と3 のみを実行してください。log_bin_trust_function_creators は動的パラメータであるため、DB を再起動する必要はありません。

MySQL DB インスタンスのために自動バックアップをオンにすると、バイナリログ記録もオンになります。トリガーの作成時に、次のエラーメッセージが表示される場合があります。
「エラー 1419 (HY000): SUPER 権限が付与されておらず、バイナリログ記録が有効になっています (安全性の低い log_bin_trust_function_creators 変数を使用することをお勧めします)」

このエラーが表示された場合は、log_bin_trust_function_creators パラメーターを 1 に変更します。これにより、DB インスタンスで関数、プロシージャ、トリガーが許可されます。パラメータを 1 に設定してもアクセス拒否エラーが表示される場合は、「mysqldump を使用して Amazon RDS for MySQL DB インスタンスにデータをインポートする際に発生する 1227 エラーと definer エラーを解決する方法を教えてください」を参照してください。

注: og_bin_trust_function_creators=1 に設定すると、安全でないイベントがバイナリログに書き込まれる場合があります。バイナリログ記録はステートメントベースです (binlog_format=STATEMENT)。

log_bin_trust_function_creators パラメータの詳細については、MySQL ウェブサイトの 「log_bin_trust_function_creators」および「Stored program binary logging」を参照してください。

関連情報

DB クラスターパラメータグループのパラメータの変更

コメントはありません