WordPressを使っていると、突然「Error establishing a database connection」と表示されて、サイトが真っ白になることがあります。
管理画面にも入れず、何が原因なのか分からず焦ってしまう方も多いのではないでしょうか。
この記事では、WordPressのデータベース接続エラーの原因と対処法を初心者向けにわかりやすく解説します。
WordPressのデータベース接続エラーとは
「Error establishing a database connection」とは、WordPressとデータベース(MySQL / MariaDB)が接続できていない状態を意味します。
WordPressは記事や設定情報をデータベースに保存しているため、ここに接続できないとサイトは表示されません。
つまりこのエラーは、サイトが壊れたというより「データベースと通信できていない状態」です。
よくある原因はこの4つ
データベース接続エラーの原因は主に以下の4つです。
① データベース接続情報のミス
WordPressは wp-config.php に記載された情報を使ってデータベースに接続します。
- データベース名
- ユーザー名
- パスワード
- ホスト名
これらのいずれかが間違っていると接続できません。
wp-config.phpの設定でエラーが出る場合は、以下の記事も参考にしてください。
② MySQL(MariaDB)が停止している
データベースサービス自体が停止していると、当然ながら接続できません。
VPS環境では特に起こりやすい原因のひとつです。
以下のコマンドで状態を確認できます。
systemctl status mysql
停止している場合は再起動します。
sudo systemctl restart mysql
VPSの基本設定が不安な場合は、以下の記事で手順を確認しておくと安心です。
③ データベースの破損
まれに、データベースのテーブルが破損していることがあります。
この場合は修復処理が必要になりますが、初心者の場合はバックアップからの復元が安全です。
④ サーバの負荷や制限
レンタルサーバでは、アクセス集中やリソース制限によってデータベース接続が失敗することがあります。
- 同時接続数の制限
- CPU・メモリ不足
- 他ユーザーの影響
特に共有サーバでは、自分のサイトに問題がなくても影響を受けることがあります。
VPSとの違いについては、以下の記事で比較しています。
原因ごとの対処法
接続情報を確認する
wp-config.php を開き、以下の項目を確認します。
define('DB_NAME', 'データベース名');
define('DB_USER', 'ユーザー名');
define('DB_PASSWORD', 'パスワード');
define('DB_HOST', 'localhost');
1文字でも間違っていると接続できないため、正確に確認してください。
MySQLを再起動する
sudo systemctl restart mysql
再起動だけで解決するケースも多いです。
負荷を疑う
アクセスが集中している場合や、プラグインが原因で負荷が高くなっている場合もあります。
このような場合、サーバ環境自体の見直しが必要になることもあります。
安定した環境で運用したい場合は、VPSの利用も検討してみてください。
実際に私がハマった原因
私の場合は、以下のような原因でデータベース接続エラーが発生しました。
- データベース情報のコピーミス
- wp-config.phpの設定ミス
- MySQLサービスが起動していなかった
特にVPSでは、設定を手動で行うことが多いため、こうしたミスが起こりやすくなります。
一つずつ確認していくことで、確実に原因を特定できます。
それでも解決しない場合
- バックアップから復元する
- WordPressを再インストールする
- サーバ環境を見直す
無理に復旧しようとせず、一度環境を整理するのも選択肢のひとつです。
VPSで安定運用するという選択肢
レンタルサーバでは、リソース制限や他ユーザーの影響を受けることがあります。
VPSを利用することで、以下のメリットがあります。
- リソースを専有できる
- 自由に設定できる
- 安定した運用が可能
VPSでWordPressを構築する方法はこちらで解説しています。
これから始める方は、以下の記事も参考にしてください。
まとめ
WordPressのデータベース接続エラーは、以下の原因で発生することが多いです。
- 接続情報のミス
- MySQLの停止
- データベースの破損
- サーバの負荷や制限
まずは wp-config.php の設定と、MySQLの状態を確認することが重要です。
原因を一つずつ切り分けていけば、ほとんどの場合は解決できます。