MySqlでデーターベースのインポートの際、ファンクションが入らない際の解決方法

MySql5.7でエクスポートした、ダンプファイルをMySql8.0でインポートしようとした所、functionが入りませんでした。

エラー内容
Error Code: 1419. You do not have the SUPER privilege and binary logging is enabled

https://dev.mysql.com/doc/refman/5.6/ja/stored-programs-logging.html に以下の記述がありました。
関数作成に関する前述の条件 (SUPER 権限を持つ必要があることと、関数が決定的であるか、データを変更しないと宣言する必要があること) を緩和するには、log_bin_trust_function_creators グローバルシステム変数を 1 に設定します。デフォルトでこの変数には 0 の値が設定されていますが、次のように変更できます。

mysql> SET GLOBAL log_bin_trust_function_creators = 1;
サーバーの起動時に --log-bin-trust-function-creators=1 オプションを使用することによって、この変数を設定することもできます。

バイナリロギングが有効でない場合、log_bin_trust_function_creators は適用されません。前述のように、関数定義の DEFINER 値が必要としないかぎり、関数の作成に SUPER は必要ありません。

インポートの前に、ルート権限で SET GLOBAL log_bin_trust_function_creators = 1; を実行しました。

その後、インポートすることでエラーなしにすべてインポートすることができました。

コメント

人気の投稿