2017-12-01 5 views
0

mysqlで簡単なトリガーを作成しようとすると、以下のエラーメッセージが表示されます。これを克服する方法を教えてください。アマゾンクラウドでホストされているmysqlでトリガーを作成できません

delimiter $$ 

create trigger trg_addresses_ins before insert on addresses 
for each row 
begin 
    declare msg varchar(128); 
    if length(new.addressstate) > 2 then 
     set msg = concat('MyTriggerError: Trying to insert a state value of more than 2 character: ', new.addressstate); 
    signal sqlstate '45000' set message_text = msg; 
end if; 
end$$ 

delimiter ; 

`

エラーコード:あなたはSUPER権限とバイナリログが有効になっている必要はありません1419(あなたは変数少ない安全なlog_bin_trust_function_creatorsを使用する場合があります)0.078秒

スーパーユーザーは有効ですが、引き続き同じエラーが発生し、mysql aws db instanceに関連付けられたデータベースパラメータグループを1に変更できません。パラメータグループフィールドが読み込み専用であるため、新しく作成されたグループを選択するdbインスタンスを変更できません。

enter image description here

あなたの貴重な入力を感謝しています。

ありがとうございます!

答えて

1

あなたが変更できないデフォルトのDBパラメータグループを使用していると思いますが、解決方法は独自のパラメータグループを作成してlog_bin_trust_function_creators = 1に設定し、現在のインスタンスに独自のパラメータグループを適用する必要があります。

+0

新しいパラメータグループを作成しましたが、設定のこのフィールドが読み取り専用のため、デフォルトグループをこの新しいものに変更できません。 – Dex

+0

@Dexデフォルトグループを変更しません。新しいグループを使用するようにインスタンスを変更します。これには再起動が必要です。 –

+0

@ Michael-sqlbot私は、新しいグループを使用するためにインスタンスを変更する必要があることを理解しますが、パラメータグループは読み取り専用であるため、インスタンスを変更できません。 – Dex

関連する問題