ご依頼の背景
MySQL のバージョンが低いと最新の WordPress にアップデートできません。運用歴の長いサイトでは MySQL のバージョンが古く、該当するケースが多く見受けられます。
特にロリポップサーバーでは、データベースのバージョンアップのサポートは対象外となっており、契約者が自分で行うか、外部の業者に依頼する必要があります。
今回ご相談いただいたのは、phpMyAdmin を使ってご自身でデータベースアップデートを試みたものの、データベースのデータが大きすぎてインポートが正常に行えないという理由でした。
確かに、エクスポートデータは約 600MB 程度あり、データベースのサイズとしては大きめで、phpMyAdmin ではインポートが失敗しやすいサイズです。
対応内容
新規データベースの作成:
新規に MySQL8 のデータベースを作成し、phpMyAdmin は使用せず、別のツールを利用して MySQL5 のエクスポートデータをインポートすることにしました。
データのインポート:
無事に MySQL8 のデータベースに MySQL5 のデータをインポートできたのですが、問題が発生しました。
問題の詳細
記事に絵文字が含まれていると、それらの記事を保存できないという問題が発生しました。これは古いデータベースから MySQL8 に移行する際によくある問題で、文字コードや照合順序に関する設定が原因でした。
具体的には、MySQL8 では utf8mb4 文字セットが推奨されており、絵文字を正しく扱うためにはこの設定が必要です。しかし、古い MySQL5 のデータベースでは utf8 文字セットが使用されていることが多く、絵文字を含むデータが正常に保存できません。
解決策
文字コードと照合順序の変更:
インポート後、データベース内の全テーブルおよびカラムの文字コードを utf8mb4 に変更し、照合順序を utf8mb4_general_ci または utf8mb4_unicode_ci に設定しました。
変更後、絵文字を含む記事も正常に保存できることを確認しました。
注意点
絵文字を使用していない場合の気付かない問題:
データベースのサイズが小さく、エクスポート、インポートが問題なく終わった場合でも、絵文字を使っていないユーザーはこの問題に気付かないかもしれません。
MySQL5 から MySQL8 への切り替えを検討されている場合は、事前に文字コードや照合順序の設定を確認することが重要です。
バックアップの重要性:
データベースの移行作業を行う前には、必ずバックアップを行うことをお勧めします。万が一のトラブルに備え、データの保護が必要です。
まとめ
無事に MySQL8 のデータベースに MySQL5 のデータをインポートし、絵文字を含む記事も保存できるようになりました。
もし MySQL5 から MySQL8 への切り替えを検討されている場合や、データベースの移行についてのご相談がございましたら、ぜひお気軽にご相談ください。お客様のニーズに合わせた最適なサポートを提供いたします。