長年WordPressを使ってブログやホームページなどを運営していると、ウェブサイト上は何も問題がないように見えても、その裏側には思いがけず古いものが残っていて、それが問題を抱えている場合があります。
僕が2011年から運営している、このブログ「Swingin’ Thinkin’」もそうでした。
レンタルサーバーは「ロリポップ!」を利用しています。WordPress本体やテーマ、プラグインはその都度アップデートしてきたのですが、ずっと気になっていたものがありました。
データベースのMySQLです。
Swingin’ Thinkin’が使っていたのは、なんとMySQL 5.1。
その古さはというと、MySQL 5.1が正式リリースされたのは2008年。すでに18年近く前のバージョンです。 しかも、公式サポートもずいぶん前に終了しています。
現在のロリポップでは新しいMySQLを利用できますが、古くから契約している環境では、昔作ったデータベースがそのまま使われている場合があります。
しかも、WordPress本体のように「更新」ボタンをポチッと押せば、自動的に新しくしてくれるわけではありません。
新しいMySQLへ移行するには、古いデータベースからデータを書き出して、新しいデータベースを作り、新しいデータベースへ移し、さらにWordPressの接続先まで変更する必要があります。
……怖い。
これが、ずっと放置していた最大の理由でした。
ロリポップではMySQLの移行はサポート対象外
ちなみに、ロリポップの公式サイトでは、最新バージョンのデータベースを使いたい場合は、新しいデータベースを作成し、古いデータベースの内容をそこへインポートする方法が案内されています。
現在の最新バージョンはMySQL 8.4。ただし、バージョン間の仕様の違いによって、すべてのデータが正常に移行できる保証はなく、データベースの操作そのものもサポート対象外と明記されています。
つまり、古いMySQLを新しくしたければ、自分で新しいデータベースを作り、自分の判断でデータを移行する必要があるということです。
しかも、もし何かトラブルが起きても、基本的には自分で対処しなければなりません。
これでは、長年運営してきたWordPressのデータベースに、なかなか気軽には手を出せません。
参考:LOLIPOP! – WordPressで「古いデータベースサーバー」「MySQLバージョン5.7以上の使用を検討してください」と表示されます
怖くて触れなかったMySQL
WordPressのテーマやプラグインは、これまでも何度もアップデートしてきました。
でも、データベースは別物です。
Swingin’ Thinkin’には、長年書き続けてきた記事や設定など、大量のデータが蓄積されています。
操作を間違えてデータベースを壊してしまったらどうなるのか。WordPressがデータベースへ接続できなくなったらどうするのか。
そう考えると、なかなか手を出せませんでした。
「今ちゃんと動いているのだから、触らない方がいいんじゃないか」と先送りしていたのです。
ところが、とうとうそうも言っていられなくなりました。
WordPressのアップデートで限界が見えてきた
WordPressを長く安全に運用するには、WordPress本体だけでなく、PHP、MySQL、テーマ、プラグインなど、サイトを構成するさまざまなソフトウェアを更新していく必要があります。
ところが、土台となっているMySQLが古すぎると、新しいWordPressが求める動作環境から外れてしまいます。
実際、今回WordPressの環境を見直したところ、サイトヘルスでは「非常に古いデータベースサーバー」が致命的な問題として指摘されていました。

「いつかやらなければ」と思っていたデータベース移行を、ついにやるしかありません。
そこで今回は、ChatGPTに画面や設定を確認してもらいながら、一工程ずつ作業することにしました。
いきなり古いデータベースは消さない
今回もっとも意識したのは、必ず元に戻せる状態で作業することです。
ざっくり言えば、今回行ったのは「古いデータベースを新しくする」というより、古いMySQL 5.1のデータベースを残したまま、MySQL 8.4の新しいデータベースをもうひとつ作り、そこへ中身をコピーするという方法です。
これなら、新しいデータベースで問題が起きても古いデータベースそのものは残っています。
さらに、移行直前のデータベースをSQLファイルとしてダウンロードしてパソコン内にも保存しました。
つまり、
旧データベース + SQLファイルのバックアップ
という二重の退路を確保してから作業を始めたのです。
「失敗しても、元に戻せる」
これは精神的にもかなり大きかったです。
MySQL 5.1から8.4へ移行した手順
ここからは、実際にSwingin’ Thinkin’で行った作業を大まかに紹介します。
なお、サーバーやWordPressの環境によって状況は異なります。以下はあくまで僕の環境で行った作業記録です。実際に作業する場合は、必ず事前にバックアップを取ってください。
1. 現在のWordPressとデータベースの状態を確認
まずはWordPressの「サイトヘルス」やロリポップの管理画面から、使用中のMySQLやPHPなどのバージョンを確認しました。
Swingin’ Thinkin’では、ここで古いMySQL 5.1を使っていることを改めて確認しました。
2. 旧データベースをSQLファイルとしてバックアップ
続いて、ロリポップのユーザー専用ページにある「サーバーの管理・設定」→「データベース」からphpMyAdminを開き、旧データベースをSQL形式でエクスポートしました。
Swingin’ Thinkin’の場合、書き出されたSQLファイルは約316MB。
長年運営してきただけあって、なかなかの重量級です。
ちなみにデータベースの中身を調べてみると、約3万6000件もの投稿リビジョンが保存されていることもわかりました。
今回は無理にデータベースの整理まではせず、そのまま新しい環境へ移行することにしました。
3. MySQL 8.4の新しいデータベースを作成
次に、ロリポップの管理画面から、MySQL 8.4の新しいデータベースを作成しました。
ここが今回のポイントです。
古いデータベースをアップグレードしたり削除したりするのではなく、別に新しいデータベースを作ります。
この時点ではWordPressはまだ古いデータベースにつながっているので、公開中のサイトには影響しません。ただ、作っただけです。
【補足】データベースの容量が大きい場合は要注意
旧データベースから新しいデータベースへデータを移す際は、データベースの容量にも注意が必要です。 ロリポップではデータベースごとに容量の上限があり、長年運営しているWordPressでは、蓄積したデータによって容量がかなり大きくなっている場合があります。
もし移行するデータが容量の上限を超えている場合は、不要なデータを削除するなど、事前にデータベースを整理する必要があります。
なお、不要データの確認や削除方法は環境によって異なるため、ここでは割愛します。
4. SQLファイルを新しいデータベースへインポート
次はいよいよ、(2)でバックアップしたデータを、(3)の新しいデータベースへインポートします。
手順としては、ロリポップの「データベース」画面から、今度は新しく作成したMySQL 8.4のデータベースのphpMyAdminを開き、先ほどエクスポートした約316MBのSQLファイルをインポートしました。
インポート完了後、phpMyAdminの「構造」を確認。
Swingin’ Thinkin’では66個のテーブルが作成され、データベース容量は約295MiBと表示されました。
旧データベースとは表示される容量に差がありましたが、テーブル数などを確認したうえで次へ進みました。
5. wp-config.phpの接続先を書き換える
データを新しいMySQLへコピーしただけでは、WordPressはまだ古いデータベースを使っています。
そこで、ロリポップFTPからWordPressの「wp-config.php」を開きます。
念のため、編集する前のwp-config.phpもパソコンへダウンロードしてバックアップしました。
そして、wp-config.phpに記載されている以下のデータベース接続情報を、新しいMySQL 8.4側の情報へ変更しました。
- データベース名(DB_NAME)
- データベースユーザー名(DB_USER)
- データベースのパスワード(DB_PASSWORD)
- データベースホスト(DB_HOST)
ここを書き換えて保存すると、WordPressが新しいMySQL 8.4のデータベースを参照するようになります。
6. 公開サイトとWordPress管理画面を確認
wp-config.phpを保存して、Swingin’ Thinkin’へアクセス。
……ちゃんと表示された!
WordPressの管理画面にも問題なくログインできました。
さらに「サイトヘルス」で確認すると、WordPressが新しいMySQL 8.4へ接続していることも確認できました。
これでMySQLの移行は完了です。遂にやった!
MySQLを移行したあと、WordPressやPHPもアップデート
MySQL 8.4への移行が成功したあと、せっかくなので古くなっていたWordPress環境もまとめて整備しました。
最終的にSwingin’ Thinkin’は、以下の環境になりました。
- WordPress:7.0.3
- PHP:8.2.33
- MySQL:8.4.8
さらにテーマやプラグインのアップデートを行い、長期間使っていなかったプラグインも削除。MySQLを新しくし、さらにWordPressの床下を大掃除する一日となりました。
長年ロリポップでWordPressを使っている方はMySQLの確認を
Swingin’ Thinkin’のように、かなり昔からロリポップでWordPressを運営している方は、一度データベースのバージョンを確認してみるといいかもしれません。
表面上は普通にサイトが動いていても、その下で古いMySQLがずっと働き続けている可能性があります。
僕自身、「データベースなんて怖くて触りたくない」と長いあいだ避けていました。
実際、今回の作業にもリスクはありますし、環境によって手順も異なります。そのため「この手順どおりにやれば必ず成功する」とは言えません。
作業前のバックアップは必須です。
それでも、旧データベースを消さず、新しいデータベースを別に作り、SQLファイルのバックアップも取ったうえで、一工程ずつ確認しながら進めれば、思っていたより落ち着いて作業することができました。
そして今回、もうひとつ心強かったのがChatGPTです。
僕が実際に操作し、画面の状態や設定内容をChatGPTに確認してもらいながら、一工程ずつ進めました。
もちろん、AIの回答をそのまま信じて操作するのではなく、最終的に判断して操作するのは自分です。それでも、ひとりでネットの情報とにらめっこしながら作業するのとは、安心感がかなり違います。
何より、ずっと気になっていた「MySQL 5.1」という大きな課題を、ようやく片付けることができました。長年住んできた家の床下を恐る恐る開けてみたら、ずいぶん昔から働き続けていた設備が出てきて、それをようやく新しいものへ交換できた。そんな気分です。
これでまた、安心してWordPressを使い続けられそうです。

