WordPress の PHP を 8.22.2 にバージョンアップしたら MySQL の接続ができなくなったという話

始めに:

諸事情あって新規の執筆を中断して、WordPress とプラグイン、テーマのみの更新を実施していたが、とうとう「PHP を更新しないと WordPress の更新ができないよ」というメッセージを頂いてしまった。それで PHP を XServer の推奨するバージョンに更新した結果が、表題の通りという訳だ。

PHPのバージョンとデータベース:
  • PHP を7.x .x から PHP8.22.2 へ更新
  • データベースは MySQL5.0 に据え置き

※PHP の古いバージョンは 7.1.x だったと思うが、7.2.x だったような気もするし、全然違っていたような気もする・・・実は忘れてしまったのですよ。ほんの数日前のことなのに。


スポンサーリンク

問題解決に至った処置:

この問題は、XServer  のサーバーパネル上でデータベースのパスワードを再設定することで解決した。変更ではなく、現在使用中のパスワードを設定しなおしただけ、という点に留意して頂きたい。

パスワード再設定手順:
  1. XServer にログイン後、左サイドのメニューから[データベース]を展開し、トップに表示されている[MySQL設定]を選択する。
  2. 画面中央に表示される三個のタブから[MySQLユーザー設定]を選択する。
  3. wp-config.php に記載されているデータベース名を見つけ、そのデータベース名の右側にある[詳細]ボタンをクリックする。
  4. パスワードフィールドに wp-config.php に記載されているパスワードを入力して[変更する]ボタンをクリックする。
問題解決に至るまでの経緯:

PHP をバージョンアップする前は正常に動作していたのだから、データベース接続に関する wp-config.php の記載内容に問題がないのは明らかだ。
その事を確認するのは必須として、データベースをアップグレードすれば問題は解決するのではないか、などと思いながら考えた作業手順は次の通り。

  1. WordPress を介さないデータベースアクセスをテストする。
  2. データベースをアップグレードする。
  3. WordPress をマニュアル更新する。

実際に試行したのは、WordPress のマニュアル更新を除いた二つの手順だ。
そして両方ともに失敗に終わり、それぞれ次のようなメッセージが表示された。

データベースアクセスのエラーメッセージ:

mysqlnd は、古い安全でない認証を使用して MySQL 4.1+ に接続できません。管理ツールを使用して、コマンド SET PASSWORD =PASSWORD(‘your_existing_password’) でパスワードをリセットしてください。(以下省略:原文は英語。翻訳は Google)

データベースアップグレードのエラーメッセージ:

下記のMySQLユーザのパスワード情報は、MySQL5.7に移行することができない形式で保存されており、MySQL移行ツールを開始することができません。

username

「MySQL設定」の[MySQLユーザ一覧]タブより、各ユーザのパスワード情報を更新してください。該当MySQLユーザのパスワード変更の手順により、MySQL5.7へ移行可能な形式に更新されます。

※データベースアクセスのエラーメッセージは、WordPress の接続試行ではこのとおりに表示されない。wp-config.php のチェックを促す内容が表示されるのみだ。

※[MySQLユーザ一覧]は、サーバーパネルのデザインを旧タイプに切り替えると見ることができる。データベースの更新(正式には[移行])は旧デザインに切り替えて試行した。

上記の二つのメッセーの根本は同じ内容だ。
現在のパスワードの設定は、古くて問題があるから設定をやり直せ、と言っているのだ。
パスワード再設定の簡単な方法が二番目のメッセージに明示されているので、自然に「問題解決に至った処置」にたどり着く。

私は PHP の新しいバージョンと WordPress の古いバージョンとの不適合を疑っていたので、最初のテストが失敗したのは、正直に言って予想外だった。

参考リンク:

本当はデータベースアクセスに使用した PHP ファイルのソースコードを載せたかったのだが、ソースコード表示用のプラグインが使えなくなったので、代わりに参考にしたリンクを載せておく。

参考リンク:データベース接続関数リファレンス

  1. リンク先のサンプルコードを適当なテキストエディタにコピペする。
  2. mysqli 関数の引数のホスト名、ユーザー名、パスワード、データベース名に、 wp-config,php に記載されている内容を指定する。サンプルの 文字列[localhost]をそのまま使用してはいけない。
  3. テキストエディタの内容をローカルに保存する。ファイル名は何でも良いが、英文小文字にすること。エンコードは必ず utf8 に設定し、ファイル拡張子は[php]を指定する。
  4. 保存したファイルを FTP サーバーにアップロードする。WordPress のコード類と同じディレクトリが良いだろう。
  5. [WordPressドメイン名]/samplefile.php を URL ボックスに入力して Return キーを押す。
  6. テストに使用したファイルが不要になったら、削除するのを忘れないようにしましょう。
終わりに:

今回の PHP アップグレードに伴う問題は、wp-config のシンタックスエラーから始まった。
それは何とか修正したが、私が普段使用している[秀丸エディタ]でコピペや保存にショートカットキーを多用すると、どうもエラーが発生し易いような気がしている。

コピペに起因すると思われるシンタックスエラーは、稀ではあるが「おや、またですかい」といった頻度では発生する。これは Visual Studio でも確認しているので、注意が必要だ。

データベース接続に関する問題の解決にあたっては、パスワードに関する二つのエラーメッセージが助けになった。二つのうち、認証について言及したメッセージは特に重要だ。
もし、そのメッセージを表出した”WordPress を介さないデータベースアクセス”を思いつかなかったら、解決までもっと時間がかかったに違いない。

今回はこの問題を独力で解決したが、後で調べてみたら、同じ内容の記事が結構存在しているのを見つけた。なので、先に検索していたらもっと楽に解決できたんだろうなぁ・・・などと思っている。

スポンサーリンク

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です