【サーバー移管】データベース インポート時のエラー:1273 – 不明な照合順序:utf8mb4_0900_ai_ciの対処法

database-kv-prograshi(プロぐらし)-kv Database
記事内に広告が含まれていることがあります。

Lolipop(ロリポップ)からXserver(エックスサーバー)へのサーバーを移管など、旧サーバーから新サーバーへのWEBサイトの移管作業において、データベースのSQLファイル(またはその圧縮ファイル)をインポートするときに以下のようなエラーが発生することがあります。


エラーの内容

#1273 – 不明な照合順序: ‘utf8mb4_0900_ai_ci’


この記事ではこのエラーの原因と対処法についてまとめています。


なお、私は元々Lolipopで運用していたのですが、数年間運用することでLolipopの重大な問題が発覚したために、いろいろと調べて、Xserverに移管することにしました。

移管に至った経緯や、XserverとConoha Wingの比較などについては下記をご参考ください。Xserverの料金が1万円引きになるリンクも紹介しています(私の場合これが最終的な決め手でした)


エラーの原因

エラーメッセージ 「#1273 – 不明な照合順序: ‘utf8mb4_0900_ai_ci’ 」は、MySQL 8.0で導入された新しい照合順序 utf8mb4_0900_ai_ci が、MySQL 5.7ではサポートされていないことが原因です。

移管前の旧サーバーのMySQLのバージョンが「8.0」だったのに対して、移管後のMySQLのバージョンが「5.7系」だった場合に発生します。

実際に移管前のデータベースのバージョンを確認してみると「8.0」になっています。

Lolipop上のデータベース


これに対して、移管後のデータベースのバージョンは「5.7系」になっています。

Xserverのデータベース




対処法

このエラーを解決するためには、SQLファイル内の照合順序を、MySQL 5.7でサポートされているものに変更する必要があります。

具体的には以下のように書き換えます。

utf8mb4_0900_ai_ci

 ↓ 変更後

utf8mb4_general_ci


対象の文字列を置換してファイルを保存し、再度インポートすれば完了です。



実例

VScodeなどのエディタでインポートしたSQLファイルを開きます。

ctrl + H で「utf8mb4_0900_ai_ci」を検索します。

ここでは、3か所ヒットしました。



ctrl + h で置換します。


ファイルを保存して、再度インポートします。

無事インポートが完了しました。


以上で対処は完了です。


タイトルとURLをコピーしました