この記事を書く人と信憑性
家富正幸(いえとみまさゆき)
現役のWordPressエンジニア(エンジニア歴16年)
大規模から小規模までのWordPressテーマ開発実績数は800件以上
あらゆるエラーやトラブルを解決してきた立場からデータベース接続エラーが発生した場合も原因と対処法について解説していきます。
はじめに
WordPressの運用中にデータベース接続エラーが発生した場合、 Webサイトが全く見られなくなり非常に大きな機会損失となります。
また多くのケースで管理画面にさえアクセスできなくなるため、 原因と復旧の方法を知らないと何も対処ができなくなる恐れがあります。
今回はWordPress運用中にデータベース接続エラーが出た場合の、 具体的な原因とその復旧方法についてを解説します。
データベース接続エラーが出る要因
データベース接続エラーが出る要因は主に以下の2つです。
- データベースサーバーに接続できない
- データベースが破損している
いずれも非常に深刻な状態になります。
データベースサーバーに接続できない
データベースサーバーに接続できない場合、 原因としてさらに以下のような内容が考えられます。
- データベースが停止している
- サーバー側が高負荷となりデータベースの実行に問題が発生している
- サーバー側のネットワーク問題によりWebサーバーとデータベースサーバー間の通信が正しく行えない
- データベース接続用ユーザーのIDとパスワードが異なっていて接続できない
- データベース接続用ユーザーの権限に問題がありテーブルが読み出せない
1. データベースが停止している
サーバー側が再起動する等した場合、 適切な起動処理が行われていないとデータベースが起動していないといったケースがあります。
データベースが起動していない場合、 サーバー側からデータベースを起動させることで問題が解決する場合があります。
VPSやオンプレミスのサーバーを利用している場合は、 SSHでサーバーに接続しデータベースが起動しているかチェックしてください。 もし起動していなければ起動コマンドを実行することで、 データベースを起動させてください。
また合わせて自動起動の設定を行っておくことで、 再起動時に自動的にデータベースが起動するようになるので、 そちらの設定も忘れずに行っておきましょう。
もし一般的なレンタルサーバーを利用している場合、基本的にユーザーはデータベースの起動・停止を制御することはできません。 その場合には別に原因があることが考えられます。
2. サーバー側が高負荷となりデータベースの実行に問題が発生している
サーバー側がアクセス過多になっているなどして、 起動しているデータベースの動作が遅くなってしまいデータベースは起動しているのに接続ができないというケースがあります。
VPSやオンプレミスのサーバーなどの場合、 サーバー側でデータベースを再起動する、リソースを消費しすぎているアプリケーションを終了するなど、 データベースの動作を妨げている原因を取り除くことで解消します。
ただし一般的なレンタルサーバーを利用している場合、 基本的にユーザーはデータベースの起動・停止やその他のアプリケーションの実行を制御できないため、 サーバー会社に連絡するなどの対応が必要になります。
アクセス過多などでリソース制限を受けている場合などは、 上位のプランやサーバー移設も含めて検討してみるのがよいでしょう。
3. サーバー側のネットワーク問題
ファイルサーバーとデータベースサーバーを分離して管理してる環境において、 サーバー側のネットワークに問題が発生し、 ファイルサーバーとデータベースサーバー間の通信が正しく行えておらず、 データベース側に接続できないというケースがあります。
VPSやオンプレミスのサーバーなどの場合、 ファイルサーバー側とデータベースサーバー側のネットワーク構成を見直す、 ネットワークの調整を行うことで解消する場合があります。
ただ物理的なサーバーが遠方にあったり、ネットワーク関連に触れないような契約であったり、 一般的なレンタルサーバーの場合にはこちらでは打つ手がありません。
基本的にはサーバー会社様にを連絡をして、 状況を確認することが第一となります。
4. データベース接続用ユーザーのIDとパスワードが異なっていて接続できない
データベースユーザーのIDやパスワードが変更されてしまい、 単純にデータベースにアクセスできなくなるといったケースもあります。
データベースサーバーがもし通常通り稼働している場合、 管理者権限でデータベースにログインしてみて、 当該のユーザーのIDやパスワードが間違えていないか、 確認をしてみてください。
もしデータベースの管理権限を持っていない場合、 サーバー管理者に連絡をして確認をする必要があります。
5. データベース接続用ユーザーの権限に問題がありテーブルが読み出せない
データベースには権限という概念があり、 その権限が変更されてしまったなどの問題により今までアクセスできていたWordPressのテーブルにアクセスできなくなる、 といったケースが存在します。
管理者権限でデータベースにログインしてみて、 当該のユーザーの権限が間違えていないか確認をしてみてください。
もしデータベースの管理権限を持っていない場合、 サーバー管理者に連絡をして確認をする必要があります。
データベースが破損している
何らかの要因でデータベースが破損してしまった場合、 データベースに接続できなくなるケースがあります。
データベースサーバーは正しく起動しているが、 サーバーのディスク障害やクライアント側の操作ミスなどで、 内部のデータが破損してしまうと、 WordPressが正しくデータを取得できずに不具合が発生します。
この場合データベース内のデータが正しくなくなっている場合が多いため、 手元にデータベースのバックアップ等がある場合、 そちらを使ってデータベースを復元することで改善します。
もしバックアップを取っていない場合、 一般的なレンタルサーバーでは自動バックアップなどのサービスが存在するため、 そういったものが利用できないかサーバー会社に連絡してみてください。
まとめ
データベース接続エラーが出てしまった場合、 総じて大きな問題である可能性が高いです。
自分でサーバー管理ができている場合、 サーバー側のミドルウェアの問題やネットワークの問題の可能性があるので、 現状の構成で正しくアクセスを処理できているかなど確認をしてみましょう。
自分でサーバー管理ができていない場合、 解消できない可能性も高いため、 一般的なレンタルサーバーなどを利用している場合などは早々にサーバー会社に連絡をしてみるのが一番です。
こういったケースに備えるため、 常にデータベースのバックアップについても取得しておくようにしましょう。