・WordPressサイトでデータベースサーバの更新を促される問題に対処するには?
・MySQLのメジャーバージョンアップは互換性として問題ないか
・ロリポップ!どうバージョンアップするのか知りたい
今回は、筆者の実体験をもとにしています。
WordPressのブログのデータは、データベースに保存されています。そのためデータベースが壊れるとブログがすべて消えてしまいます。特にライトプランなどの低価格プランだとサポートや復元手段も限られます。
今回、筆者が利用しているサービスプロバイダのロリポップ!について、ライトプランで立ち上げたデータベースのMySQLをバージョンアップするノウハウを紹介します。
アップデートの背景
WordPressのサイトヘルス機能で推奨
WordPressにはブログのパフォーマンスやセキュリティ向上のため、サイトヘルス機能があります。ブログに推奨される設定などをアドバイスしてくれます。
そしてWordPressの6.1以上では、サイトヘルスのチェックの観点として、「古いデータベースサーバー」があります。つまり古いデータベースを使っているのでバージョンアップした方がいいという意味です。
実際のメッセージは以下で、こんなものが出たら気になります。調べたところMySQLが5.6でした。

ロリポップ!の見解
筆者のブログを動かしているサービスプロバイダはロリポップ!になります。低価格なこともあってか、おすすめのサービスプロバイダの一つとしてよく紹介されます。

今回のサイトヘルスについてのサポートを調べてみたところ、MySQLのバージョンアップはサポート対象外でした。
指示の通りにサポート対象外ならあきらめる。。。というのもありますが、技術者として調べてみて解決できるなら、ほかの人に役立つともとれるともいえるので、今回リスクを払ってでも挑戦してみました。


データベースのバージョンアップ手順
本章ではロリポップ!のMySQLをどうやってバージョンアップするかをまとめました。手順を大きくまとめると以下になります。
- ブログ内コンテンツのエクスポート
- データベース内データのエクスポート
- 古いデータベースの削除
- 新しいデータベースの作成
- 新しいデータベースへデータをインポート
- データベース接続先の修正
以下のサイトの情報を参考にしました。というかこの方のブログがなければ、自分ができませんでした。

詳細を以降で節単位で紹介します。ブログの記事が全消去のリスクがある非常に危険な作業なので慎重にお願いします。
※特にライトプランだとデータベースを1個しか持てないため、バックアップなしでは復元できません。かならずバックアップを取ってください。(2024/2/15からデータベースを50個まで持てるようになりました)
手順1:ブログ内コンテンツのエクスポート
本作業はデータベースを一度削除し、元のデータベースのバージョンと異なるものを利用します(目的がバージョンアップだから当たり前・・・)。そのため、データベースのバージョンとの互換性の問題で復元に失敗するリスクがあります。特に今回はMySQL5系から8系にあげるのでなおさら互換性が気になるところです。
2024/2/1時点で、ロリポップ!で提供しているMySQLのバージョンが8.0になっています。ダウングレード等はサポートしていませんでした。
そのためデータベースのSQLファイルだけでなく、テキストなどWordPressのメニューを使えば復元できるファイル形式でもバックアップを取っておきたいです。そのため専用のプラグインを使った以下の手順を紹介します。
① プラグイン検索で「All-in-One WP Migration」を検索して、インストールします。
「All-in-One WP Migration」はバックアップファイルを作成、バックアップファイルからの復元などができるプラグインです。

② WordPressのメニュー左に「All-in-One WP Migration」が追加されるのでクリックして、「エクスポート」をクリックします。
③ エクスポートに対するメニューが出てくるので「高度なオプション」をクリックして、そこから必要なチェックをします。
例えばメディアライブラリやテーマ、プラグインは後から取れます。復元の時にデータが多すぎるのも失敗に繋がるので、バックアップ対象をあえて絞ってます。

④ 「エクスポート」先をクリックし、ファイルを選択します。
⑤ DOWNLOADボタンが表示されるのでクリックしてください。
手順2:古いデータベース内データのエクスポート
今回の検証は、ロリポップ!のライトプランで行います。これまでは、このプランだとデータベースを1個しか持てないため、新しいデータベースで復元に失敗したら後に戻れなくなりました。
今ではデータベースを複数持てるようになったので、このリスクは下がってますがあくまでデータベースを1個しか立ち上げていないときは、その点注意が必要です。以下の手順でデータベース内のデータをエクスポートしてください。
手作業に自信がない方のために、以下の記事で自動化するためのPythonプログラムも公開しています。
① ロリポップユーザ専用ページ→サーバの管理・設定→データベース→phpMyAdminを開きます。

② phpMyAdminにログイン→エクスポート→全選択を選びます。

③ ②の画面を下までスクロールして「生成オプション」にてOFFになっている以下の追加コマンドをONにします。
- CREATE DATABASE / USEコマンドを追加する
- DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGERコマンドを追加する
追加でチェックが必要なのは、インポートするときにデータベースの枠を作るというSQL文(CREATETABLEなど)が実行できないためです。

④ ③の画面を下までスクロールして「エクスポート」ボタンをクリックします。
(sqlファイルがダウンロードされます)

手順3:古いデータベースの削除
前項でも示したように、ロリポップ!のライトプランだとデータベースを1個しか持てず、新しいデータベースを作成するには、古い方を削除する必要があります。そのため再三の記載になりますが、失敗するとデータを復元できなくなるので、手順1,2に漏れがないか確認の上で実施してください。
① ロリポップユーザ専用ページ→サーバの管理・設定→データベースを開きます。
② 「データベース削除」ボタンをクリックしてデータベースを削除します。

手順4:新しいデータベースの作成
本項にて、新しいデータベースを作成します。手順は以下の通りです。
① ロリポップユーザ専用ページ→サーバの管理・設定→データベースを開きます。
② 「作成」ボタンをクリックします。
③ 以下を入力し、「作成」ボタンをクリックして、データベースを作成します。
- 作成するサーバー ※2024/2/1時点では、mysql8.0一択でした
- データベース名
- 接続パスワード
手順5:新しいデータベースへデータをインポート
新しいデータベースを作成したので、以下の手順でデータをインポートします。
① ロリポップユーザ専用ページ→サーバの管理・設定→データベース→phpMyAdminを開きます。

② phpMyAdminにログイン→インポートを選びます。
③ 「ファイルを選択」で手順2にてエクスポートしたsqlファイルを選択します。

④ ③の画面を下までスクロールして、「インポート」をクリックします。
これでデータの復元はできました。あとはデータベース接続先の修正だけです。
手順6:データベース接続先の修正
手順5にてデータベースを最新化し、データも復元できました。しかし、これではWordpressが古いデータベースに繋ぐよう設定したままなので動きません。
本項では、サイトを新しいデータベースに接続するように修正する手順を以下に示します。
① ロリポップユーザ専用ページ→サーバの管理・設定→ロリポップ!FTPをクリックします。
② サイトのファイル一覧が出てくるのでwp-config.phpを開きます。
③ デフォルトだと書込権限がないため、現在の属性を「600」にし、「保存」をクリックします。

④ ③にてwp-config.phpを書き込めるようになったので、ファイル内の以下の変数(defineで書かれている部分)の値を最新のデータベースの接続先に変更します。変更後は「保存」をクリックします。
- DB_NAME
- DB_USER
- DB_PASSWORD
- DB_HOST
⑤ 権限をもとに戻すため、現在の属性を「400」にし、「保存」をクリックします。

これでブログがもとに戻りました。めでたしめでたし!
まとめ
WordPressのデータはデータベースに保存されており、古いバージョンを利用しているとWordPressのサイトヘルス機能により更新が推奨される場合があります。
しかし、ロリポップ!のライトプランのようにデータベースのバージョンアップがサポート外である場合もあります。解決のため、本記事で実体験に基づくバージョンアップの方法を紹介しました。
主なステップは以下の通りです。
- ブログ内コンテンツのエクスポート
- データベース内データのエクスポート
- 古いデータベースの削除
- 新しいデータベースの作成
- 新しいデータベースへデータをインポート
- データベース接続先の修正
注意点として、特に低価格なプランではバックアップと復元オプションが限られるため、作業前にバックアップを徹底することが何よりも重要です。
本記事にて、技術的な知識が乏しくても、サーバーのバージョンアップを実施できるようにまとめました。WordPressを最新のデータベースにする際に役立てていただければ幸いです。
参考文献
- ブログのblog:ロリポップ・データベース(MySQL5.7)バージョンアップデートの手順(https://muryoblog.cinemarev.net/entry/lolipop-mysql.html)
- ロリポップ!:WordPressで「古いデータベースサーバー」「MySQLバージョン5.7以上の使用を検討してください」と表示されます(https://support.lolipop.jp/hc/ja/articles/11260735468563)
コメント
はじめまして。たぴおらと申します。
ロリポップでのデータベース更新手順の公開、ありがとうございます。
こちらで公開いただいた手順を参考にさせていただき、無事に管理しているサイトのデータベースを更新することができました。
で、補足になりますが、既にご存じかもしれませんが、ロリポップのサービス内容変更により、ライトプランでも複数のデータベースを使えるようになっています。
https://lolipop.jp/info/news/7756/
現データベースを残したままで移行作業が可能なので、サイトの停止時間はほぼゼロにできますし、現データベースを削除しなければ、何か不具合があってもすぐに元に戻せます。
ライトプランで複数サイトを管理する場合も、データベースを分けることができるようになってとても安心になり、ありがたい変更だと思いました。
今回の作業のために、情報を探していた際に貴ブログに行き当たりましたので初訪問でしたが、また時々拝見させていただきます。
コメントありがとうございます。
以下の記事を把握しておりませんでした。
https://lolipop.jp/info/news/7756/
ライトプランでもかなりスペックアップしていたのですね。ありがとうございます。
またデータベース更新に記事が参考になったとのことありがとうございます。
IT関係で調べたことを記事にしていますので、また機会がありましたら訪問いただけますと幸いです。
大変参考になりました。
WordPressのバージョンアップにより、データベースを更新せざるを得ないので、このページを確認しながら進めてみます。ありがとうございました。
コメントありがとうございます。ぜひ活用ください。
他にもIT関係で調べたことを記事にしていますので、また機会がありましたら訪問いただけますと幸いです。
[…] https://enrock2023-itblogger.com/lolipop-dbserver-update/#toc2 […]
はじめまして。
このページが大変参考になり、当方も無事にMySQL 5.6から8.0にアップデートできました。
下段のとおり若干変更された部分はございましたが、細かい手順が記載されており、30分程度で完了しました。情報発信に感謝、今後のご活動も応援いたします。
データベースのエクスポートでは若干変更が加えられているようですので、補足させていただきます。
・「エクスポート方法」が追加(?)されており、「詳細 – 可能なオプションをすべて表示」を選択。
・「テーブル」が「データベース」に。(特に操作なく、そのままで問題なし。)
・「生成オプション」の「CREATE DATABASE」はなくなっている。(何もせずとも、CREATE DATABASEは実行される様子。)
コメントありがとうございます。データベースいじるとブログへの影響が大きいので、お役に立てたようでよかったです。
ITに関する記事を書いてますので、活用いただければ幸いです。