DBインポート時の文字コードエラーを解決する方法
  • WordPress
最終更新日:2020年2月19日

Unknown collation: ‘utf8mb4_unicode_ci’の解決方法

サーバー移転に伴ってMysqlのデータベースを移行する際、インポート時に下記のような文字コードエラーが表示されることがあります。

「Unknown character set: ‘utf8mb4’」

「Unknown collation: ‘utf8mb4_unicode_520_ci’」

「#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘TYPE=MyISAM AUTO_INCREMENT=18’ at line ●●●●●」

本記事では、これらエラーが発生する原因と解決方法について解説しています。

DBインポート時に文字コードエラーが起きる原因

具体的な解決方法に入る前に、まずはDBインポート時に文字コードエラーが起きる原因について触れておきます。

DBインポート時に文字コードエラーが起きる原因は、移行元と移転先のMysqlバージョンに差があり、古いプログラムコードや文字コードを使っていることです。

DBインポート時の文字コードエラーを解決する方法①Mysqlバージョンを揃える

では、ここからは具体的な解決方法に入っていきたいと思います。
まず1つ目に紹介する方法は、Myswlのバージョンを揃えるという方法です。

前述の通り、文字コードエラーは移行元と移行先のMysqlバージョンが異なるために発生します。そのため、移行先のMysqlバージョンを移行元と同じにしてあげれば、エラーは発生しなくなります。

ただし、サーバーによってはMysqlのバージョンを自由に変更できない、または、新しいMysql環境でWebサイトを動かしたいなど、移行元のバージョンと揃えられないケースも多いかと思います。

その場合は次の方法で対処しましょう。

DBインポート時の文字コードエラーを解決する方法②sqlファイルを修正する

移行元と移行先のMyswlバージョンを揃えられない場合には、移行するsqlデータを修正し、移行先に合った形でインポートしてあげる必要があります。

それぞれのエラーに応じて、修正の仕方を以下で解説していきます。

Unknown character set: ‘utf8mb4’とUnknown collation: ‘utf8mb4_unicode_520_ci’の修正方法

「Unknown character set: ‘utf8mb4’」または「Unknown collation: ‘utf8mb4_unicode_520_ci’」というエラーコードが出た場合には、下記の流れで修正します。

テキストエディタでファイルを開き、左側の文字列を右側の文字列にそれぞれ置換
utf8mb4_unicode_520_ci → utf8_general_ci
utf8mb4 → utf8

#1064 – You have an error in your SQL syntax;~の修正方法

#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘TYPE=MyISAM AUTO_INCREMENT=18’ at line ○○

上記のエラーが出た場合には、下記のように修正します。

テキストエディタでファイルを開き、「TYPE=MyISAM」を「ENGINE=MyISAM」に置換

Mysqlの正しいエクスポート・インポート手順

最後に、Mysqlの正しいエクスポート・インポート手順についても紹介しておきます。
もしデータベースの移転に不安な場合は下記の記事を参考にしてみてください。

この記事を書いた人

サイト引越し屋さん編集部

日本で最も利用されているサーバー移転代行サービス『サイト引越し屋さん』の中の人です。 サイト引越しに関わる技術情報をはじめ、WordPressやその他のWebサービスに関するノウハウを発信しています。 全日本SEO協会所属。日本ウェブ解析士協会(WACA)所属。