【WordPress】PHPのバージョンを7.3系から7.4系に引き上げたら「データベース接続確立エラー」でブログの表示も管理画面のアクセスもできなくなってしまった件

基本情報

種類トラブル対応記録
発生日2022年8月23日
状況調査中
概要運営しているブログにおいて、PHPのバージョンを7.3系から7.4系に引き上げたらまったく動作しなくなってしまった。バージョンを元に戻したら復旧した。ただしいつまでもバージョンを上げないわけにはいかない。
最終目標動作しなくなった原因を突き止め、適正な処置を施し、PHPのバージョンを引き上げても問題ないようにする。

環境

  • 【レンタルサーバー】スターサーバー
  • 【WordPress】6.0.1
  • 【テーマ】Cocoon 2.4.5.7

経緯・背景

WordPress テーマ「Cocoon」を利用しているサイトがある。

Cocoonのバージョンを最新にアップデートしたところ

このテーマは現在使用中の PHP のバージョンでは動作しません。
PHP の更新についてさらに詳しく読む。

と表示されるようになった。

Cocoonの最新版をどうしても使いたいわけではない。だから緊急性は高くない。とはいえ、いずれは対応しなければならないだろう。

PHPのバージョン引き上げは過去何回か行ってきた。難しい作業ではない。

そのためすぐ実施することにした。

行ったこと

スターサーバーの管理画面にログインし「PHPバージョン設定」の画面を開く

現在のバージョンは「PHP7.3.33」となっていた。

PHPのバージョンの選択肢は以下の通り。

最新のバージョンとして「8.0系」「8.1系」も選べるようだが、まだ「推奨」ではないようだ。

推奨は現在選んでいたバージョンのひとつ上の「7.4.28」

7.4.28を選んで「PHPバージョン」設定ボタンを押して変更処理を実施した。

起きたこと(トラブル)

データベース接続確立エラー

念の為動作確認しておこうとブログにアクセスしたら…

「データベース接続確立エラー」とだけ表示。

トップページだけでなくどのページも同じ表示となりまったく動かなくなっていた。

エラー詳細を確認するためデバッグモードをON

詳細なエラー内容を見ないことにはなにが起きているのかわからない。

そのためデバッグモードをONにすることにした。

スターサーバーには、ブラウザ上からWordPressのファイルを編集する機能がある。

wp-config.phpを開きデバッグモードを有効にした。

/** * 開発者へ: WordPress デバッグモード
*
* この値を true にすると、開発中に注意 (notice) を表示します。
* テーマおよびプラグインの開発者には、
* その開発環境においてこの WP_DEBUG を使用することを強く推奨します。
*/
define(‘WP_DEBUG’, true);

エラー内容

ブログをリロードした。

表示された内容がこちら。

Warning: mysqli_real_connect(): (HY000/2000): mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD(‘your_existing_password’). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file in

/home///public_html/***/wp-includes/wp-db.php on line 1753

mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD(‘your_existing_password’). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file

データベース接続確立エラー

これは、wp-config.php ファイルのユーザー名とパスワードが正しくないか、あるいは **** のデータベースサーバーに接続できないかのどちらかを意味します。ホスティングサービスのデータベースサーバーがダウンしているかもしれません。

ユーザー名とパスワードに間違いはありませんか ?
正しいホスト名を入力しましたか ?
データベースサーバーは動作中ですか ?

こうした用語が何を意味しているのか分からない場合は、ホスティングサービスに連絡するべきでしょう。助けが必要であればいつでも WordPress サポートフォーラムを訪れることができます。

今回の問題発生に関連して実施したのは

  • PHPのバージョン変更

の1点のみである。

データベースは一切触っていない。アカウント(ユーザ名もパスワードも)はもちろんいじっていない。

それにも関わらずログイン(接続)できないとはどういうことだろう。

これ以上の情報は得られなそうだし、ブログが表示されない状態が長く続くのは良くないと思ったので、原因追求はいったんお預けにして復旧を目指すことにした。

復旧のために行ったこと:PHPのバージョンをもとに戻した

復旧のためにとりあえずできることとして

PHPのバージョンを元(7.3.33)に戻してみた。

結果、復活した。

動かなかったのは何故なんだというくらいあっけなく。

原因究明(調査中)

調査中
原因と対処方法が分かり次第追記予定

PHPのバージョンを元に戻したら復活した。

しかし、一般論として古いバージョンというのはいずれサポートされなくなるものである。

いつまでもいまのPHPバージョンのままにしておくわけにはいかない。

なぜ「データベース接続確立エラー」が起きたのか、原因を究明し必要な措置を行う必要がある。

外部リンク(関連してそうな記事メモ)

うさ吉

群馬出身埼玉在住。
趣味(写真や小旅行)についてつらつらと書き綴ってます。

うさ吉をフォローする
WordPress
シェアする
うさ吉をフォローする
うさログ

コメント