MySQL5⇒MySQL8へのデータ移転を実施いたしました

記事
IT・テクノロジー

ご依頼の背景

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 への切り替えを検討されている場合や、データベースの移行についてのご相談がございましたら、ぜひお気軽にご相談ください。お客様のニーズに合わせた最適なサポートを提供いたします。


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら