WordPressのPHPをバージョンアップしたら、「データベース接続確立エラー」がでてしまった場合の解決方法をまとめておきます。
困っている方のお役に立ちますように。
<やりたいこと>
WordPressを最新バージョンに更新したい。
そのためにPHPのバージョンも更新したい。
<起きている現象>
サーバーでPHPバージョンを更新したら「データベース接続確立エラー」が出た。
WordPressサイトにアクセスできない。管理画面にログインできない。
<エラー内容>
「データベース接続確立エラー」
”これは、wp-config.php ファイルのユーザ名とパスワードが正しくないか、あるいは
dbserver.xserver.jp のデータベースサーバーに接続できないかのどちらかを意味します。
ホスティングサービスのデータベースサーバーがダウンしているかもしれません。”
<サーバー環境>
エックスサーバー
<原因>
MySQLのパスワード暗号化形式の違い。
<解決策>
データベースユーザーのパスワードを設定し直す。
ことの経緯と起きている不具合
10年前にドメインを取得して、WordPressで作成した古いサイトがあるんですけど、
更新を停止してからずいぶんと放置してしまっていました。
更新を再開することになったのですが、まずは環境を最新のものにアップデートしないといろいろと不具合がありそう(起きそう)で怖いです。
WordPressのダッシュボードには、WordPressとPHPの更新を促すメッセージが表示されています。
このまま使用することはできるといえばできるんですが、やっぱりセキュリティ的に不安ですし、動作に不具合が起きるかもしれない。
ということで両方とも更新をすることにしました。
バージョンアップすることでサイト表示速度も向上するでしょうしね。
WordPressバージョン | PHPバージョン(動作環境) | PHPバージョン(推奨環境) | MySQL |
6.0 – 6.1 | 5.6.2 – 8.1 | 7.4以上 | 5.7以上 |
WordPress6.1の推奨PHPバージョンは7.4以上。
現在のバージョンがPHP5.3.3で非推奨になってしまっているので、推奨バージョンのPHP7.4.33に切り替えます。
(※エックスサーバーの管理画面)
と、ここでWordPress管理画面に戻ると「データベース接続確立エラー」が出てしまいました。
データベース接続確立エラー
これは、wp-config.php ファイルのユーザ名とパスワードが正しくないか、あるいは
dbserver.xserver.jp のデータベースサーバーに接続できないかのどちらかを意味します。
ホスティングサービスのデータベースサーバーがダウンしているかもしれません。
・ユーザー名とパスワードに間違いはやりませんか?
・正しいホスト名を入力しましたか?
・データベースサーバーは稼働していますか?
こうした用語が何を意味しているのか分からない場合は、ホスティングサービスに連絡するべきでしょう。
助けが必要であればいつでも WordPress サポートフォーラム を訪れることができます。
初めてこんな画面を見たら心臓が止まるほどびっくりすると思いますが、長くWordPressを付き合っているとたまに見る光景です(笑)
ちなみに、PHPのバージョンをもとに戻せばエラーは消えてWordPressが表示されますので、慌てずに対処してください。
エラーの原因はMySQLの暗号化方式の違い
あんまり詳しくない方が見ても、用語が難しくてわけわかんないと思いますが、要は
「WordPressがデータベースにログインできない」
という内容のエラーです。
「じゃあなんでログインできないの?」ということですが、どうやらデータベース(MySQL)の暗号化の方法に原因があるようです。
データベース(MySQL)にデータベースユーザーのパスワードを保存する際に、暗号化の方式が新旧あるようで
新) native_password形式
PHPのバージョンの違いによって読み込める方式が違うみたいなんです。
PHPをバージョンアップしたことにより方式違いのパスワードが読み込めず、データベースへの接続ができなくなってしまったということのようです。
解決方法と手順
ということで、WordPressがデータベースに接続できるようにしてあげれば、この問題は解決するということです。
いくつか方法はあるみたいですが、パスワードを再設定するのが一番かんたんそうなので、その方法をご紹介します。
バックアップの取得
そのまえに、念のためデータベースのバックアップの取得を行っておくことをおすすめします。
万全を期すのなら、PHPバージョンを戻してWordPress自体のバックアップも取得しておいてください。
(というか、WordPress更新の前にバックアップ取るのが基本ですけど・・・😅)
データベース情報の確認
データベースユーザーのパスワードを確認します。
パスワードは、 wp-config.php の中で確認できます。
データベースユーザーのパスワードを設定し直す
確認したパスワードで、設定をし直します。
「同じパスワードで上書き再設定をする」というのが正確な表現かもしれません。
(パスワードを変えても良いですが、その場合は前述の wp-config.php も書き換える必要があります。)
エックスサーバーの「簡単インストールプログラム」を使用してWordPressをインストールした場合、DB接続設定ファイル( wp-config.php )も同時に修正されるようです。これが効くのかも?
ということで、エラー画面は解消して無事管理画面が表示されました。
このあと問題なくWordPressの更新も成功しました。
まとめ
PHPをバージョンアップした際、WordPressでデータベース接続確立エラーが起こることがあります。
その場合は、データベースユーザーのパスワードを再設定してみてください。
この方法でうまくいかなかったときは、MySQL自体をバージョンアップする方法もあるようです。
MySQLのバージョンアップのほうが手間はかかりますが、パスワード再設定では解決しなかった場合は試してみてください。