WordPressのサーバー移転(引越)作業中に発生したエラー「#1273 Unknown collation: utf8mb4_unicode_520_ci」が出た時の解消方法
- phpMyAdminを使ってsqlファイルをインポート
- MySQLエラー #1273 Unknown collation: utf8mb4_unicode_520_ci
- 移転元、移転先MySQLの文字セットを確認
- MySQLエラー「#1273 Unknown collation: utf8mb4_unicode_520_ci」の解消方法
WordPressのサーバー移転作業をしていた時の事。
phpMyAdminから移転先のMySQLにsqlデータをインポートしようとした時に遭遇した不具合(エラー)の内容と、その解決方法についてです。
phpMyAdminを使ってsqlファイルをインポート
まず移転元のMySQLからWordPressのサイトデータをエクスポートして、sqlファイルを作成。
移転先MySQLのデータベースは1つ新規作成しておきます。
次に移転先サーバーのphpMyAdminを開き、インポートを選択。
新しく作成したデータベースにsqlファイルを使って、インポートを実行します。
すると以下のエラーが発生しました。
MySQLエラー #1273 Unknown collation: utf8mb4_unicode_520_ci
MySQLのメッセージ:
#1273 - Unknown collation: 'utf8mb4_unicode_520_ci'
2022年8月現在、phpMyAdminは最新は5.2系が出ていますが、移転先サーバーに入っているのは2.11系でちょっと古め。
MySQLサーバはバージョン: 5.5系でこちらもちょっと古めですね...。
インポート画面にある「ファイルの文字セット」をutf8(上図の赤枠のところ)でインポート実行していたので、
この文字セットを「utf8mb4」に変更してインポート実行してみたが、同じエラー(Unknown collation: utf8mb4_unicode_520_ci)が出てインポート処理が止まってしまう。
sqlファイルに問題があるのか確認するために、移転前のMySQLサーバーに新規でデータベース作成してインポートを試してみた。
結果は問題なくインポート完了。ファイルが壊れているわけではなさそう。
移転元、移転先MySQLの文字セットを確認
移転元と移転先のMySQLサーバーの文字コードを確認してみる。
phpMyAdminのSQLタブから以下のSQL構文(show)を入力して実行。
show variables like '%char%';
コマンドを実行すると上のような表が表示されます。
移転元がMySQL5.6で文字セットが「utf8mb4」、移転先がMySQL5.5で文字セット「utf8」。
移転先のほうが古いバージョンで、設定されている文字コードも違いますね。
「utf8」と「utf8mb4」の違いは、ここでは割愛します。
googleで検索すると詳しい情報が出てきますので、興味のある方はそちらをご確認くださいね。
MySQLエラー「#1273 Unknown collation: utf8mb4_unicode_520_ci」の解消方法
まずインポートで使用するsqlファイルを、テキストエディタで開きます。
開いたら、照合順序「utf8mb4_unicode_520_ci」と文字セット「utf8mb4」
を、それぞれ以下の文字列に書き換えます。(黄色枠と赤枠の箇所)
変更前 | 変更後 |
---|---|
utf8mb4_unicode_520_ci → | utf8_general_ci |
utf8mb4 → | utf8 |
筆者はSublime Text4を使って文字列を置換しましたが、テキストエディタに置換機能があると書き換えがラクですよ。
書き換えが終わったら保存してファイルを閉じます。
移転先のphpMyAdminからインポート画面を開き、ここから書き換えたsqlファイルをインポートします。
エラーが表示されずにインポートが正常終了したらOKです!
あとはWordPressのインストールやインポートしたデータベースを移転先で使えるように書き換え作業など公開準備を進めていきましょう!
MovableType/WordPressを使ったホームページ制作、機能追加や設置代行などの改修、システム開発、サイトの保守を手掛けております。
アナタが実現させたい機能、やりたい事をお聞かせいただけませんか? そのイメージを一緒に実現しましょう!
お問い合わせは以下のページから!!