ロリポップ!でMySQLをバージョンアップ(5.6→8.0)

サムネイル Web開発

・WordPressでデータベースサーバの更新を促されたが、ロリポップ!でどうすればいいの?
・MySQLのメジャーバージョンが違うけど、互換性あるの?

今回は、筆者の実体験をもとに記事にまとめました。

WordPressのブログのデータは、データベースに保存されています。そのためデータベースが壊れてしまったらブログがすべて消えてしまいます。これは大事に扱わないと・・・

特に低価格プランだとサポートや復元手段も限られているため、それも考慮の上でデータベースを取り扱う必要があります。

今回、筆者が利用しているサービスプロバイダのロリポップ!について、ライトプランで立ち上げたデータベースのMySQLをバージョンアップするノウハウを紹介します。

アップデートの背景

WordPressのサイトヘルス機能で推奨

WordPressにはブログのパフォーマンスやセキュリティ向上のため、サイトヘルス機能があります。ブログに推奨される設定などをアドバイスしてくれます。

そしてWordPressの6.1以上では、サイトヘルスのチェックの観点として、「古いデータベースサーバー」があります。つまり古いデータベースを使っているのでバージョンアップした方がいいという意味です。

実際のメッセージは以下で、こんなものが出たら気になります。調べたところMySQLが5.6でした。

ロリポップ!の見解

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

ロリポップ!レンタルサーバー|WordPressの表示速度No.1
【WordPressの表示速度No.1】のレンタルサーバー「ロリポップ!」月額550円から高速WordPressが使える!初期費用・ドメインも無料!今すぐ10日間の無料お試し

今回のサイトヘルスについてのサポートを調べてみたところ、MySQLのバージョンアップはサポート対象外でした。

Just a moment...

指示の通りにサポート対象外ならあきらめる。。。そもそもデータベースのバージョンアップはあくまで推奨であり強制ではないため、無理に上げなくてもとは思いました。

ただ技術者として調べてみて解決できるなら、ほかの人に役立つともとれるともいえるので、今回リスクを払ってでも挑戦してみることにしました。

データベースのバージョンアップ手順

本章ではロリポップ!のMySQLをどうやってバージョンアップするかをまとめました。手順を大きくまとめると以下になります。

  1. ブログ内コンテンツのエクスポート
  2. データベース内データのエクスポート
  3. 古いデータベースの削除
  4. 新しいデータベースの作成
  5. 新しいデータベースへデータをインポート
  6. データベース接続先の修正

以下のサイトの情報を参考にしました。というかこの方のブログがなければ、自分ができませんでした。

ロリポップ・データベース(MySQL8.0 (← 5.7)バージョンアップデートの手順 | サイトカスタマイズの覚え書き「ブログのblog」
ロリポップ!サーバーのデータベース(MySQL)バージョンアップ方法(更新)を起こりやすいエラー( #1044 #1046 )解決方法と共に覚書き。特にライトプランの方は、自信がなければご自分で手を付けずに依頼した方が良いでしょう。してくだ...

詳細を以降で紹介します。ブログの記事が全消去のリスクがある非常に危険な作業なので慎重にお願いします。

※特にライトプランだとデータベースを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個しか立ち上げていないときは、その点注意が必要です。以下の手順でデータベース内のデータをエクスポートしてください。

① ロリポップユーザ専用ページ→サーバの管理・設定→データベース→phpMyAdminを開きます。

データベースメニュー

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

テーブルエクスポート1

③ ②の画面を下までスクロールして「生成オプション」にてOFFになっている以下の追加コマンドをONにします。

  • CREATE DATABASE / USEコマンドを追加する
  • DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGERコマンドを追加する

追加でチェックが必要なのは、インポートするときにデータベースの枠を作るというSQL文(CREATETABLEなど)が実行できないためです。

テーブルエクスポート2

④ ③の画面を下までスクロールして「エクスポート」ボタンをクリックします。
  (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画面1

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

  • DB_NAME
  • DB_USER
  • DB_PASSWORD
  • DB_HOST

⑤ 権限をもとに戻すため、現在の属性を「400」にし、「保存」をクリックします。

wp-config画面2

これでブログがもとに戻りました。めでたしめでたし!

まとめ

WordPressのデータはデータベースに保存されており、古いバージョンを利用しているとWordPressのサイトヘルス機能により更新が推奨される場合があります。

しかし、ロリポップ!のライトプランのようにデータベースのバージョンアップがサポート外である場合もあります。解決のため、本記事で実体験に基づくバージョンアップの方法を紹介しました。

主なステップは以下の通りです。

  1. ブログ内コンテンツのエクスポート
  2. データベース内データのエクスポート
  3. 古いデータベースの削除
  4. 新しいデータベースの作成
  5. 新しいデータベースへデータをインポート
  6. データベース接続先の修正

注意点として、特に低価格なプランではバックアップと復元オプションが限られるため、作業前にバックアップを徹底することが何よりも重要です。

本記事にて、技術的な知識が乏しくても、サーバーのバージョンアップを実施できるようにまとめました。WordPressを最新のデータベースにする際に役立てていただければ幸いです。

参考文献

コメント

  1. たぴおら より:

    はじめまして。たぴおらと申します。

    ロリポップでのデータベース更新手順の公開、ありがとうございます。
    こちらで公開いただいた手順を参考にさせていただき、無事に管理しているサイトのデータベースを更新することができました。

    で、補足になりますが、既にご存じかもしれませんが、ロリポップのサービス内容変更により、ライトプランでも複数のデータベースを使えるようになっています。
    https://lolipop.jp/info/news/7756/

    現データベースを残したままで移行作業が可能なので、サイトの停止時間はほぼゼロにできますし、現データベースを削除しなければ、何か不具合があってもすぐに元に戻せます。

    ライトプランで複数サイトを管理する場合も、データベースを分けることができるようになってとても安心になり、ありがたい変更だと思いました。

    今回の作業のために、情報を探していた際に貴ブログに行き当たりましたので初訪問でしたが、また時々拝見させていただきます。

    • enrock2023 enrock2023 より:

      コメントありがとうございます。

      以下の記事を把握しておりませんでした。
      https://lolipop.jp/info/news/7756/
      ライトプランでもかなりスペックアップしていたのですね。ありがとうございます。

      またデータベース更新に記事が参考になったとのことありがとうございます。
      IT関係で調べたことを記事にしていますので、また機会がありましたら訪問いただけますと幸いです。

タイトルとURLをコピーしました