「旅とアロマ」にお越しくださりありがとうございます。
今回は、旅行記ではなく、WordPressのお話です。

私のブログ作成ツール遍歴は、Ameba→はてなブログ→WordPress、サーバーは、Ameba → はてなブログ(有料)→ Conoha WING(有料)です。Conohaは高速だと紹介されていますが、古いデータベースサーバーを使っているのがネックでした。
しかし、先日 Conoha WING でバージョンアップのメッセージが!
早速バージョンアップしてみると、いきなり不具合発生!ログインできなくなってしまいました。悪戦苦闘のうえ解決しましたが、今回は初心者が陥りやすいミスと解決方法をご紹介いたします。自身の忘却禄も兼ねていますが、いつかどこかで、どなたかの情報の一つになりますと幸いです。
スポンサーリンク
はじめに
環境
・WordPress 6.9.4(最新)
・サーバー:Conoha WING
・PHP:8.5
・管理ツール:phpMyAdmin
・データベース MySQL5.6 → 8.4へアップデート
WordPressは、自由度が多い反面、セキュリティ対策など管理はプラグイン(機能拡張用のソフトウェア)をインストールして自分で行わないといけません。
個人ではよく分からないブログの状態を判断してくれるサービスに「サイトヘルスステータス」があります。ここに、長年、SQLサーバーについて(以下のような)警告が出ているのが気になっていました。

致命的な問題ではないとしながらも『ホスティング会社(Conoha)に相談して修正してください』と書かれているのが気になります。セキュリティにも関わるようなので、放置するのは良くなさそうです。
しかし、利用者にはサーバー管理者権限がなく勝手にバージョンアップすることができません。データベースのバージョンが古いとはいえ、使用感としては特に問題はなかったのですが、気になるのはセキュリティ対策です。WAFでは防御されていますが、かなり攻撃を受けていました。
前回の「欄州からの異常なアクセス」事件でも、Conoha は何も対策してくれませんでした(エックスサーバーは即対策してくれたのに・・・)。なので、次の更新時にはサーバーを変えようと思っていました。
そんなとき、いきなりMySQL 8.4 へのアップデート!
早速、アップデートしてみることにしました。
MySQL 5 から8.4へ
プログラミング初心者なので、いろいろ調べてから取り掛かろうと思いました。
そもそもMySQLとは?
MySQL
MySQLは、膨大なデータを整理整頓して保管し、必要な時に高速で取り出すためのソフトウェアで、WordPress(ブログ作成ツール)の標準データベースです。
簡単にまとめてみました。
- ブログ(WordPress)を表示するために必要なのが「データベース」
- そのデータベースを管理しているのが「MySQL」
古いバージョンだとどうなるの?
Geminiさんによると、MySQLのバージョンが古いまま使い続けることには、「見えないリスク」が潜んでいるそうです。家で例えるなら、「古くなって鍵が壊れやすくなり、隙間風も入るけれど、修理パーツがもう売っていない状態」に似ています。具体的にどのような問題が起こるのか、考えられるリスクも教えてくれました。
リスク
1. セキュリティリスク(脆弱性)
2. パフォーマンス(速度)の低下
3. 新しい機能や構文が使えない
4. 周辺ツールとの互換性エラー

Conoha WINGのバージョンはMySQL5.7でした Σ(゚Д゚)
ただでさえ脆弱性が心配されているWordPressなのに・・・。WAFで防御されているとはいえ、サイトへの攻撃が多かったのはこの古いMySQLバージョンのせいだったのでしょうか?
余談ですが、Geminiさんは Conoha WING のことを「彼」と呼んでいました・笑。
移行方法
移行方法は簡単で、Conoha WINGのコントロールパネルの「サーバー管理」>「データーベースマイグレーション」をクリックするだけです(移行後はグレーになり再度クリックできなくなります)。
step
1バックアップ
まずは、インストールしているプラグインを使ってバックアップを取りました。Conoha でもバックアップがあるので、何かあっても安心です。
step
2データマイグレーション
MySQL 8.4 への移行は、「サーバー管理」>「データマイグレーション」のボタンを押すだけです。

すると、バックグラウンドで処理が始まります。完了するまでの時間が示されましたが、5分から0分になり、さらにもう一度5分から0分・・・、これが3回繰り返され、結局20分近くかかりました。
STEP2にてデータベースホストの書き換えを行っていただきます。

必ず切り替え前の事前確認を実施してください。
「データベースの移行」と「切り替え」の違いが分かっていませんでした。また、この画面から離れてはいけないと思っていたので、事前確認をメモして「次へ」。
step
3切り替え完了
終わってしまいました・・・
切り替えが完了してしまうと、旧バージョンのMySQLにはアクセスできなくなります。書き換えのタイミングが分からないまま終了。サイトを確認しようとしたら、通常の手順では、WordPressにログインできなくなってしまいました。
幸い、ConohaWING の管理画面からサイトの管理画面に入れたのですが、記事の保存(更新)ができません。
ただ、見ていただくサイト自体は表示されており(Googleアナリティクスでもアクセス数あり)、画面が崩れていることもありませんでした。こんな失敗をする人はいないらしく、検索しても対処方法は見つかりませんでした。Conoha にも問合せしてみましたが、同時にGeminiさんに泣きつきました。
すると、以下のヒントをくれました。

「接続先サーバー名」は「接続先ホスト」と同じ意味のようです。
書き換え
切り替えが終わった後ですが、Conoha WINGの管理画面から接続先サーバー名(接続先ホスト)を確認してみることにしました。

「サイト管理」>「データベース」の中に、データベース名や接続先ホスト(接続先サーバー名)が書かれています。同じページの下にある「ファイルマネージャー」を別ウィンドウで開けて、以下の点が違っていないか確認します。
- データベース名
- ユーザーネーム
- パスワード
- ホスト名(接続先サーバー名)
確認するのは、ファイルマネージャーの中の wp-config.php です。
マウスの右クリックで「ファイル編集」>「テキストエリア」を表示します。


ここに、Geminiさんが教えてくれた "DB_HOST" がありました。まずは、テキストエリアのそれぞれの英数字がConohaWINGの管理画面の英数字と違いがないか確認してみました。
すると、やっぱり "DB_HOST(ホスト名)” が違っていました!

私の場合、データベース名やユーザーネームは同じでした(新しいものに置き変わっていた?)
パスワードは、伏せ文字になっているので分かりません。Conohaへのログインのパスワードではなく、管理ツールphpMyAdminのパスワードです(以前のまま?)。ちなみに、パスワードをConohaのログイン用に書き換えたらエラーが出てまた接続不可になってしまったので、元に戻しました。
違っていたのは、ホスト名だけです。修正(書き換えた)後は「保存」すればOKです。
本当は、ここをSTEP3に進む前にやらなくてはいけなかったのでしょうか。でも、完全に切り替えたあとでも変更できてよかったです。
不具合チェック
サイトに不具合がないか、以下の項目をチェックしてみました。
- WordPressにログインできるか
- 記事の保存(更新)ができるか
- ブログが正常に表示されるか
- 問い合わせフォームから送信できるか
どれも正常に働いていました。問合せフォームからメッセージがあり、返信もできました。なお、コメント機能を利用している場合はコメントが投稿できるかどうかの確認も必要です。
説明にはデータベースホスト名の書き換え方法のガイド(リンク)もあるのですが、書き換えのタイミングが分かりませんでした。これが不具合発生の原因ですね。ConohaWINGの説明って(初心者には)分かりにくい言い回しが多いのです。いや、私が知らなすぎるのか?
スポンサーリンク
さいごに
悪戦苦闘しましたが、無事、WordPressのサイトヘルスから「古いデータベースサーバー」という警告は消えました。
MySQLをバージョンアップする際には、wp-config.phpの更新も必要なのですが、ConohaWINGなら(エックスサーバー同様)管理画面のファイルマネージャで簡単に操作できました(理解するのに時間がかかりましたが)。ノーコードで、FTPソフトを立ち上げる必要もないので良かったです。
最後までご覧いただきありがとうございます。