MySQL Workbenchでデータをインポートしようとすると「Access Denied」というエラーが発生する

事象

MySQL Workbenchでデータをエクスポートし、Structure & Dataモードで新規作成したスキーマに対してデータをインポートを行った。
しかし、「Access denied; you need (at least one of) the SUPER privilege(s) for this operation」というエラーが発生して、データをインポートが行えない。

前提

  • 権限自体の設定は誤っていない、きちんと設定されている
  • log_bin_trust_function_creators = 1 は設定されている

対応方法

対応方法1:SQLを編集する

エクスポートした状態でそのままインポートしようとすると、権限を操作する様なSQLがいくつか出力されてしまっている。
そこで、MySQL Workbenchでインポートを行う前にSQLを編集すれば、インポートが行える。
MySQL5.7においては、(多分)以下をSQL文中から削除することで、インポートが行える様になる。

SET @@SESSION.SQL_LOG_BIN=0
SET @@GLOBAL.GTID_PURGED='';
DEFINER=`hogehoge`.@`hogehoge2`
SET @@SESSION.SQL_LOG_BIN=@@MYSQLDUMP_TEMP_LOG_BIN;
対応方法2:CUIにて-fオプションを用いる

MySQL Workbenchでインポートを行おうとすると、実行したSQLがコンソールに表示される。
そのSQLコマンドプロンプトにて実行を行う。
その際、-fオプションを付与して実行を行う。(※1)
そうすることで、対応方法1でエラーになっていた箇所はエラーメッセージは発生するものの、スキップしながら実行を行える。
但し、DEFINER~のところは編集していた方が好ましい(※2)。

※1 コンソールに表示されているSQLのオプションは、"-host"などの記載になっている場合があるので、その際には"--host"と編集して貼り付ける。
※2 前提条件に記載している権限の状態が誤っていないという部分に反しやすいので。自身では合っていると思っていても、実際には設定が足りていない、別の設定が効いてきてしまうという状態に陥りやすい(自身がそうなので…)。