スキップしてコンテンツを表示

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

所要時間1分
0

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

解決策

Amazon RDS はマネージドサービスであり、システムアクセス (SUPERUSER 権限) を提供しません。バイナリロギングを有効にする場合は、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 に設定します。
    注: log_bin_trust_function_creators=1 を設定すると、Amazon RDS はバイナリログに unsafe イベントを書き込む場合があります。バイナリロギングはステートメントベースであり、次の例のような形式です: (binlog_format=STATEMENT)
  3. [変更を保存] を選択します。
    注: この DB パラメータグループは、5 分以上待ってから DB インスタンスで使用します。
  4. ナビゲーションペインで [データベース] を選択します。
  5. DB パラメータグループに関連付ける DB インスタンスを選択します。
  6. [変更] を選択します。
  7. DB インスタンスに関連付けるパラメータグループを選択します。
  8. DB インスタンスを再起動します
    注: パラメータグループ名は即時変更されます。Amazon RDS は、インスタンスを再起動した後にパラメータグループの変更を適用します。フェイルオーバーは発生しません。

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

MySQL DB インスタンスで自動バックアップを有効にした場合、バイナリロギングも有効になります。トリガーの作成する場合、次のエラーメッセージが表示される場合があります。

「ERROR 1419 (HY000): You don't have the SUPER privilege and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable) (SUPER 権限が付与されておらず、バイナリロギングが有効になっています (安全性の低い log_bin_trust_function_creators 変数が適している場合があります)」

このエラーが発生した場合は、log_bin_trust_function_creators パラメータをレビューします。パラメータが 1 に設定されていない場合は、値を 1 に更新します。パラメータを 1 に設定しても Access denied エラーが解消されない場合は、「mysqldump を使用して Amazon RDS for MySQL DB インスタンスにデータをインポートする際に発生する 1227 エラーと definer エラーを解決する方法を教えてください」を参照してください。

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

関連情報

マルチ AZ DB クラスターで DB クラスターのパラメータグループを使用する

コメントはありません