Unknown collation: ‘utf8mb4_unicode_ci’の解決方法

DBインポート時の文字コードエラーを解決する方法

サーバー移転に伴って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の正しいエクスポート・インポート手順についても紹介しておきます。
もしデータベースの移転に不安な場合は下記の記事を参考にしてみてください。

SNSでシェア!
SNSにて最新の情報を発信しております。