サーバー移転などでMySQLのデータを移行する時は「インポート/エクスポート」機能を使うと便利ですね。
「インポート/エクスポート」はphpMyAdminで行ってもいいですし、MySQLのコマンドで行ってもOKです。
ところで、エクスポートしたデータをインポートしようとすると、下のようにエラーが出でインポートができない場合がありました。
データをインポートしようとするとエラーが出る
エラー 実行した SQL: /*!40101 SET NAMES utf8mb4 */; MySQLのメッセージ: ドキュメント #1115 - Unknown character set: 'utf8mb4'
上のエラーの内容を要約すると「utf8mb4の文字コードがわかんないよ」って書いてあります。
「utf8mb4」って何ですか?
「utf8mb4」とは、MySQL 5.5.3から4バイトの文字を扱うことができる文字コードのことです。(詳しくはMySQLのドキュメントをご参考ください。)
というわけで、MySQL 5.5.3より前のバージョンに「utf8mb4」の文字コードを指定したデータをインポートする時にはエラーが出てしまう、ということでした。
例えば以下のような場合はエラーが出ます。
5.6.29でエクスポートした「utf8mb4」の文字コードを指定したデータを、5.0.95にインポートしようとするとエラーになる
こうなっちゃうと「インポートはできないのか?」と思うかもしれませんが、対応する方法があります。
「utf8mb4」に対応していないMySQLにデータをインポートする方法
エクスポートしたsqlファイルをテキストエディターで開いて「utf8mb4」の記述がある場所を探します。
「utf8mb4」の記述がある場所を探す
/*!40101 SET NAMES utf8mb4 */;
そして「utf8mb4」の部分を別の文字コード「utf8」変更するとインポートできます。
文字コードを変更する
/*!40101 SET NAMES utf8 */;
もし似たようなことで「MySQLのデータがインポートできない」という場合は、一例としてご参考くださいますとうれしいです。
このページを共有する