
【WordPress】断続的に発生するデータベース接続確立エラーの対処法

WordPressで断続的に「データベース接続確立エラー」が表示されてお困りの方はいませんか?今回はこの不具合の対処法をご紹介します。
この記事では以下のお悩みを解決します。
- ・断続的に表示される「データベース接続確立エラー」を直したい。
1. 今回発生した不具合
今回ご紹介するのはこのブログで実際に起こった不具合で解決するまでに時間がかかったため、記事としてまとめました。もし同じ不具合でお困りの方はご参考にしてください。
発生した不具合はWordPressの画面に以下の画像のような「データベース接続確立エラー」と書かれた画面が表示されました。

ただし、このエラー画面がずっと表示されるわけではなく、正常な画面も表示されますが、読み込み時やページ遷移、リロード時にエラー画面が表示されることがあります。
何度かリロードすると正常な画面に戻ります。これで根本的に解決したわけではなく、またページ遷移やリロードするとエラーページが表示されることもありました。
このエラー画面は、サーバーにあるファイル「wp-config.php」のデータベースの設定が間違っている事が多いようなので、設定を確認しましたが特に問題はありませんでした。
次にデータベースに何か問題があるのかなと思ったので、phpMyAdminにログインすると「User already has more than ‘max_user_connections’ active connections」とエラーが表示されました。
- 「max_user_connections」:データベースに特定のアカウントが同時に接続できる最大数
- 「User already has more than ‘max_user_connections’ active connections」:「max_user_connections」で設定されている最大接続数を超えた場合に表示されるエラー
他の方のブログでは「User already has more than ‘max_user_connections’ active connections」はプラグインが原因ということでしたのでプラグインを全て無効にしたのですが、不具合は解消しませんでした。
2. データベース接続確立エラーの発生原因
「データベース接続確立エラー」はWordPressがデータベースに接続できなくなるために発生します。このエラーの発生原因は以下のようなことが考えられます。
- ①「wp-config.php」のデータベースの設定が間違っている
- 「wp-config.php」はWordPressのフォルダ内にある設定ファイルでデータベース名、ユーザー名、パスワード、ホスト名が間違っていると接続できません。
- ②サーバーに障害が発生している
- サーバー側で障害が発生していると、データベースにアクセスできなくなることがあります。
- ③アクセスの急増によるデータベースの過負荷
- 突然アクセスが増えると、データベースに負荷がかかり、接続できなくなることがあります。
- ④データベースの同時接続数が上限に達している
- サーバーの設定で同時接続数が制限されており、上限を超えると接続が拒否されることがあります。
- ⑤データベースが破損している
- データベースのテーブルが破損すると、正常に読み込めずエラーが発生することがあります。
- ⑥WordPressファイルの破損
- WordPressのコアファイルが破損していると、データベースとの接続処理が正常に行われないことがあります。
phpMyAdminのエラー内容から今回の不具合の原因は④の可能性が高いです。次にこの不具合の対処方法をご紹介します。
3. 対処方法
今回の不具合はキャッシュを削除とデータベースを最適化することで解決できました。これらの作業は「WP-Optimize」というプラグインを使えば簡単に行えます。
「WP-Optimize」はデータベースの最適化や、画像の圧縮、キャッシュの削除などができる多機能なプラグインです。まず、このプラグインをインストールします。
3-1. WP-Optimizeのインストール
①管理画面のメニューの「プラグイン」➡②「新規プラグインを追加」をクリックします。

③「プラグインの検索」で「WP-Optimize」を検索します。

検索結果に「WP-Optimize」が表示されるので④「今すぐインストール」をクリックします。

インストールできたら⑤「有効化」をクリックします。

これで「WP-Optimize」のインストールは完了です。
3-2. キャッシュの削除
作業開始する前にバックアップを取っておきましょう。バックアップの取り方がわからない方は以下の記事で紹介していますので参考にして下さい。
まずキャッシュの削除をします。
①管理画面のメニューの「WP-Optimize」➡②「キャッシュ」をクリックします。

③タブメニューから「ページキャッシュ」を選択し、④「ページキャッシュを有効化」をONにします。最後に⑤「設定を保存」をクリックします。

これでキャッシュの削除は完了です。次にデータベースを最適化します。
3-3. データベースの最適化
次はデータベースを最適化します。
①管理画面のメニューの「データベース」をクリックします。②タブメニューの「設定」を選択して下さい。

③の「直近〇〇週間分のデータを保持する」は直近のデータを削除しないようにする設定です。削除したくない場合はデータの残したい期間を入力し、チェックを入れます。
「Always keep 〇〇 post revisions」は投稿や固定ページのリビジョンを常に〇〇個分保持する設定です。リビジョンとは投稿ページや固定ページで保存、更新、公開するたびに保存されるデータです。
リビジョンは過去のバージョンに戻したり、変更の履歴を確認することができます。リビジョンを保持したい場合は保存する数を指定してチェックを入れます。
どちらのデータも全て消してしまって問題ない場合はチェックする必要はありません。
チェックをした場合は④「設定と保存」で保存します。

次に⑤タブメニューの「最適化」を選択します。

⑥最適化する項目にチェックを入れます。今回は以下の5つの項目にチェックを入れます。
- ・データベーステーブルの最適化
- ・すべての投稿のリビジョンをクリーン
- ・すべての自動下書き投稿をクリーンアップ
- ・すべてのゴミ箱内の投稿をクリーンアップ
- ・スパムとゴミ箱のコメントを削除する
今回の設定と直接関係はありませんが、警告マーク「!」のついている項目にチェックを入れて最適化する場合は、最適化中にクラッシュしたり、電源が切れたりするとデータが破損する可能性があるので注意してください。

チェックしたら次は最適化を実行しますが、まだバックアップを取っていない場合は必ず取っておきましょう。
バックアップが完了したら⑦「選択した全ての最適化を実行する」をクリックします。

これでデータベースの最適化は完了です。もう一度「データベースの接続確立エラー」が表示されるか確認してみてください。
この作業完了後、「データベースの接続確立エラー」が表示されることはなくなりました。また、phpMyAdminにもう一度ログインして確認したましたが、「User already has more than ‘max_user_connections’ active connections」のエラーも発生しなくなりました。
4. まとめ
今回は断続的に発生する「データベース接続確立エラー」の対処法についてご紹介しました。ご紹介した対処法は、多くの発生原因の中の一つに対するものなので、必ずしも全ての問題に適用できるわけではありません。しかし、同じような不具合にお困りの方は、ぜひ一度試してみてください。
ご参考になれば幸いです。