WordPressデータベースのインポート時に「utf8mb4_0900_ai_ci」照合エラーを修正する方法

WordPressのインストールをMySQL8サーバーからMySQL5.7(またはそれ以下)に切り替える場合、ほとんどの場合、 1273 –不明な照合:「utf8mb4_0900_ai_ci」 データベースをインポートしようとしたときにエラーが発生しました。データベースのインポートまたはエクスポートにどのツールを使用しても、このエラーを回避することはできません。

ただし、以前にMySQL 5.7サーバーでブログを実行し、最近MySQL 8に切り替えたが、現在はMySQL 5.7に切り替えている場合は、コアWordPressテーブル(投稿、分類、オプション、コメントなど)とプラグインMySQL 5.7サーバーにインストールした場合でも、「utf8mb4_unicode_520_ci」照合を使用する必要があります。

「utf8mb4_unicode_520_ci」照合を使用するデータベースからすべてのテーブルをインポートできます。したがって、実行する必要があるのは、「utf8mb4_0900_ai_ci」照合を使用するデータベース内のテーブルを見つけて、エクスポートされたデータベースバックアップファイルからそれらを除外することです。

🔎「utf8mb4_0900_ai_ci」照合を使用するテーブルを見つけます

データベースをエクスポートするときにそれらのテーブルを除外できるように、データベース内のどのテーブルが「utf8mb4_0900_ai_ci」照合を使用しているかを見つける必要があります。

サーバーへのSSHアクセスとデータベースアクセスクレデンシャルがある場合 (これはwp-config.phpファイルから完全に取得できます)、次のコマンドを実行して、「utf8mb4_0900_ai_ci」照合を使用してテーブルを簡単に見つけることができます。

mysqlshow -u username -p --status database | grep "utf8mb4_0900_ai_ci"

? 交換してください ユーザー名データベース 上記のコマンドでデータベースとユーザー名を使用します。

プロンプトが表示されたら、データベースユーザーのパスワードを入力します パスワードを入力する: データベースに「utf8mb4_0900_ai_ci」照合を使用したテーブルのリストが表示されます。

「utf8mb4_0900_ai_ci」照合を使用するテーブルは、MySQL 8に切り替えた後にインストールしたプラグインのみである必要があります。テーブルの名前を書き留めて、次にデータベースをエクスポートするときに除外できるようにします。

💡ヒント

サーバーにSSHアクセスしない場合は、コンピューターに.sqlデータベースファイルをダウンロードし、Notepad ++などのテキストエディターで開き、検索機能(Ctrl + F)を使用して、「utf8mb4_0900_ai_ci」を使用するテーブルを見つけます。照合。

「utf8mb4_0900_ai_ci」照合テーブルを除くデータベースをエクスポートします

「utf8mb4_0900_ai_ci」照合を使用してテーブルの名前を取得したので、「utf8mb4_0900_ai_ci」テーブルを含まない新しいデータベースバックアップファイルをエクスポートして、MySQL5.7サーバーで実行されているWordPressインストールにインポートできます。

すでにWP-CLIを使用してWordPressデータベースをエクスポート/インポートしていると仮定して、次のコマンドを実行して、一部のテーブルを除外しながらデータベースをエクスポートします。

wp db export --exclude_tables = table_name、table_name、table_name

? 交換 table_name 上記のコマンドで、「utf8mb4_0900_ai_ci」照合を使用するテーブルの実際の名前を使用します。

それでおしまい。これで、WordPressデータベースをMySQL5.7を実行している新しいサーバーに簡単にインポートできます。

? 重要な注意点

バックアップから除外したデータベーステーブルの場合は、必ず新しいサーバーでデータを手動で再作成してください。これらのテーブルはプラグインのみであるため、これらのプラグインがプラグイン設定でデータをエクスポートする方法を提供しているかどうかを確認するか、古いサーバーでセットアップされたのと同じ方法で新しいサーバーでプラグインを再構成してください。