Amazon Web Service の RDS 上でのデフォルトでは、root であっても CREATE FUNCTION ...
すると
You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
となり、CREATE FUNCTION ができない。
エラーメッセージに書いてある通り、log_bin_trust_function_creators
を設定する。
設定値の確認
mysql> SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | OFF |
+---------------------------------+-------+
設定
RDSダッシュボードにログイン
https://ap-northeast-1.console.aws.amazon.com/rds/home?region=ap-northeast-1#parameter-groups:
log_bin_trust_function_creators で検索
「<エンジンのデフォルト>」となっているので、プルダウンで 「1」に変更
「変更のプレビュー」で内容を確認
問題なければ、「閉じる」→「変更の保存」
RDSのリブートは不要、即時反映される
mysql> SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON |
+---------------------------------+-------+