ワードプレスで突然データベース接続エラーとなった場合、設定不全ではなく、データベースの過負荷によりデータベース自体が接続を拒否している可能性がございます。
今回はこの場合の修正方法をいくつか解説したいと思います。

過負荷によりデータベース接続確立エラー

レンタルサーバー会社の多くは、データベースに過度な負担がかかると、そのサイトのデータベースへの接続を自動的に遮断する機能があり、こちらが有効になってしまうと、ワードプレスがデータベースに接続できなくなり、「データベース接続確立エラー」が発生し、サイトが表示されなくなります。

・「データベース接続確立エラー」が発生しないときもあり、常にそうなっている場合でない
・サイトへのアクセスが多きときに「データベース接続確立エラー」がよく発生する

上記の場合、データベースの過負荷による接続の遮断が原因である可能性が高いです。

※サーバーによっては「データベース接続確立エラー」表示されずにいきなり500,403エラーとなり真っ白になることもございます。

過負荷によりデータベース接続確立エラーの原因

ワードプレスは、普通の利用方法では、数百万アクセスや記事数が数万あっても、負荷に耐えられるようにできていますが、以下のような事例で、データベースの過負荷が起こることが多いです。
それぞれの対処方法を解説いたします。

1 膨大なリビジョンがたまっている

リビジョンは、ワードプレスのコンテンツの編集履歴で、自動保存もされるため、知らず知らずのうちにこの数が膨大になっており、ワードプレスが記事をサイトに表示するたびに、この膨大なリビジョンから、表示する記事を取り出すのに、データベースに多大な負荷がかかっている場合がございます。

リビジョンが万単位である場合は、データベースのバックアップを取得の上、一旦リビジョンをすべて削除されると過負荷が解消される場合がございます。

リビジョンが削除できるプラグイン WP Optimize

2 アクセス解析の膨大なデータがたまっている

以下のようなプラグインは、アクセス情報をデータベースに書き込むため、その情報がアクセスの多いサイト様では巨大に膨れ上がってデータベースの過負荷を起こしている可能性があります。

1 アクセス解析プラグイン
2 人気の記事を表示するプラグイン
3 一部ログイン情報等を保持し、データベースに記録するフォーム作成プラグイン

上記プラグインのデータベース情報がたまってしまっているかは、Adminer等のデータベース接続ソフトウェアを使い、データベースの記録数や、容量を調べて、データが肥大化しているなら、プラグインの停止やデータを一旦0にリセットして消してしまう等の方法をとる必要がございます。

※一部プラグインは、データベース肥大化を防ぐために、10回に一度しかアクセス数を記録しないなどの肥大化回避機能を有する物もございます

参考
シンプルで軽いphpMyadminの代替 データベース管理プログラム「Adminer」を使おう

3 その他のデータベース肥大化でよくある例 トランジエント値

トランジエント値は、データベースのwp-optionテーブルに記録される、テーマやプラグインが主に利用する一時保存値です。
このトランジエント値が、プラグインやテーマのバグで際限なくたまっている場合があります。
データベース接続ソフト等で、wp-optionテーブルを調査し、データが肥大化しており、かつ_transient という文字列で始まるエントリーが大量にある場合、該当のプラグインの停止と、トランジエント値の削除を行うと肥大化が解消される場合がございます。

※トランジエント値を削除すると、サイトに不具合が出ることが稀にございます。データベースのバックアップをお取りの上、ターゲットのトランジエント値のみを削除することをお勧めいたします。

ワードプレスのトランジエント値を一気に削除してしまうMYSQLコマンドの例は下記となります。

DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%')

WordPress ワードプレスのデータベース接続エラーの解消のご相談・ご依頼はWPドクターまでお気軽にお送りください