★今日の課題★
ワードプレスで『データベース接続確立エラー』が頻発する。

ワードプレス
ワードプレスとは、ウェブサイトを制作するための無償ツールです。
従来からある『HTML』は、ファイルが1つずつ独立しており、ファイル間のつながりは、ファイル内で個別に指示を出します。パソコン上でWordやExcelなどのファイルが独立しているのと同じです。
ワードプレスではファイルをデータベースで管理します。ファイル個々は外部から編集される訳ではありませんが、ファイルに関わる情報はデータベース上で編集することができます。
例えば、ウェブページの『banana.php』と『orange.php』にはタグとして『fruit』というキーワードを付けとおくと、『フルーツに関わるページをリストしたい』というときに簡単に処理できます。
エラー
ウェブサイトを編集していても、閲覧していても、それがデータベースであるということを感じることは少ないです。
あるときから下図のような画面が頻発するようになりました。

PHPバージョンアップ
ウェブページを閲覧しているとエラーが頻発するので、3カ月ほど前にPHPのバージョンアップを実施しています。
従前は7.4を使っていましたが、8.3にバージョンアップしました。

認証方法の変更
PHPのバージョンアップによって、データベースの調子は良くなったような気がしていました。

ただし、データベースを表示できるようになるまでは苦戦しました。
課題は認証方法の変更だったのですが、それは自前のデータベースにだけ関係すると思っていました。
詳細な方法は下記のサイトを参照しています。
WordPressは動作していた
PHPのバージョンアップを終えたあとも、WordPressのウェブサイトは閲覧も編集もできていました。

一方で、稀にエラーが出る事がありました。下図は『発電機』というキーワードで検索したときの結果です。データベースを活用するような場面でエラーが出ました。

8月に色々なエラー
2024年8月、色々な種類のエラーが出るようになりました。
Cycle Prohibited
Description:
Could not process your request for the document because it would cause an HTTP proxy cycle. Please check the URL and your browser’s proxy settings.
サイクル禁止
説明:HTTPプロキシサイクルが発生するため、ドキュメントへのリクエストを処理できませんでした。URLとブラウザのプロキシ設定を確認してください。

『404 Not Found』も良く出るようになりました。
400番台はクライアントエラーと呼ばれる種類です。404はページが存在しないことを示します。
下図は『https://www.ampita.net』を開いているときの状態です。

下図のようなエラーが出ています。

コンテンツブーストを削除
管理下にあるサイトには『コンテンツブースト』を適用していました。
一応、削除してみました。

削除処理中のウェブサイトは、画像やCSSとの連携(リンク)が上手くいっていませんでした。これは数分で解消しました。

データベースパスワード変更
先述の通り、PHPを7.4から8.xにバージョンアップした際に、データベースの認証方法が変わりました。
なので、WordPressにも使っているデータベースのパスワードを変更して、アップデートしてみました。どこがアップデートされるかわかりませんが試してます。

変更して数日、とりあえず頻度は減りましたが、完治はしませんでした。
[1カ月後](2024年9月24日)
max_user_connections
様々な事象が起きてから約1カ月後、phpMyAdminの画面には以下のエラーが表示されました。
mysqli::real_connect(): (HY000/1203): User sakura already has more than ‘max_user_connections’ active connections
このエラーは、MySQLのデータベース同時接続数に関するものであると推察されます。
原因や解決策はわかりませんが、『MySQL』に課題があるとすれば、MySQLをどうにかしなければならないであろうということでアップグレードにチャレンジしました。

MySQL 5.7 ⇒ 8.0
改善が見られないため、1カ月後にMySQL 5.7をMySQL 8.0にアップグレードしました。
さくらのレンタルサーバ(レンサバ)であれば、アップグレード自体はさほど難しくないです。
さくらのレンタルサーバのコントロールパネルを開き、左側メニューの『Webサイト/データ』にある『データベース』を開きます。

開いた画面にある『アップグレード設定』をクリックし、アップグレードを進めます。

日時を予約して、アップグレードが実行されますと、MySQL 5.7にあったデータが、MySQL 8.0のデータベースサーバに複製されます。
この時点では5.7と8.0が同時に存在します。

アップグレードの予約が完了すると確認メールが、その後のアップグレード実行後には完了メールが届きます。


MySQL 8.0
アップグレードしたMySQL 8.0をWordPressのウェブサイトへ適用するためには、ファイルの1箇所を書き換える必要があります。
その1つにファイルマネジャーを使う方法があります。
さくらのレンタルサーバのコントロールパネルを開きます。
最初に表示されるメニューから『ファイルマネージャー』を選択します。


ファイルマネジャーの中から、WordPressに使われているフォルダ(ディレクトリ)を探し、『wp-config.php』というファイルを見つけ出します。
このファイルを右クリックして『編集』を選択します。

編集画面は下図のようになります。

この中から『MySQLのホスト名』という項目を見つけ出します。すると下記のような記述になっていると思います。
mysql57.******.sakura.ne.jp
記述中の『57』を『80』と書き換えます。
mysql80.******.sakura.ne.jp
今回の例では『57』と『80』の書換えでしたが、正しい記述については先述のアップグレード画面に表示されている下記のような記述から確認することができます。

おわりに
何が原因かわからないエラー、解決できませんでした。
最後までお読みいただきありがとうございました。
