SQL Dumpからインポートしようとしたら、Cannot create a JSON value... というエラーが出たので対応した


SQL Dumpからインポートしようとしたら、Cannot create a JSON value… というエラーが出てしまいました。
テーブルにJSONカラムを追加してから発生するようになったようなので、しばらく気づかず...厄介ですね。。

発生したエラー

Error
Cannot create a JSON value from a string with CHARACTER SET 'binary'.

私は、TablePlusというGUIクライアントを使用しておりましたため、以下のような画面とともにメッセージが表示されました。
もし、他のGUIクライアントやコマンドにて実行されたユーザーでも同じようなエラーが出るものと思います。

SQL Dumpに使用したコマンド

参考までに、SQL Dumpを行った際に実行していたコマンドも載せておきます。
<HOST><USER><PASSWORD><DATABASE>には、それぞれ適切な値を設定してあります。

mysqldump --host=<HOST> --user=<USER> --password=<PASSWORD> --single-transaction <DATABASE> --default-character-set=binary > <DATABASE>.sql

解決策

上記に記載した方法で取得したDumpファイルだと、文字コードの設定がbinaryとなっていることが原因のようです。
こちらを、無理やり?テキストエディタ等でutf8mb4に変更してやると、上手くいきました。

- /*!40101 SET NAMES binary */;
+ /*!40101 SET NAMES utf8mb4 */;

※ 恐らくファイルの先頭あたり(私の場合は10行目)に、一箇所のみあるようです。

まとめ

コマンドに付与したオプション(--default-character-set=binary)は、
SQL Dumpを作成する際に、絵文字を含めた状態でDumpファイルを書き出すために指定していたものでした。

もっと最適な方法などあればコメント欄にて教えていただけますと幸いです。