WordPressサイトを運営していて、突然**「データベース接続確立エラー(Error Establishing a Database Connection)」**という真っ白な画面が出ると、心臓が止まるほど焦りますよね。
でも、大丈夫です。このエラーは原因が明確で、1つずつ確認していけば必ず直ります。
WordPressを使っていると一度は遭遇する「データベース接続確立エラー」。このエラーは、簡単に言うと**「WordPress(プログラム)が、データが入っている箱(データベース)を開けるための鍵をなくした、あるいは箱自体が見当たらない」**状態です。
【最初に確認】緊急度チェックリスト
まずは、どの状況に当てはまるか確認しましょう:
- □ サイト全体が見れない → この記事の手順を順番に進めてください
- □ 管理画面だけ「データベースの修復が必要」と出る → セクション3へジャンプ
- □ 断続的にエラーが出る → セクション4(サーバー負荷)へ
- □ サーバー移転・引っ越し直後 → セクション2へジャンプ

1. まずは「どこで」エラーが起きているか確認
一口にエラーと言っても、状況によって対処法が変わります。
- サイト全体でこのエラーが出る: 接続設定のミスか、サーバー側の問題です。
- 管理画面(/wp-admin)だけ「データベースの修復が必要です」と出る: データベースが破損している可能性があります。
2. 最も多い原因:wp-config.phpの設定ミス
サイトの引っ越しや、パスワード変更後によく起こるパターンです。
⚠️ 作業前の重要な注意事項
必ずバックアップを取ってください!
wp-config.phpを編集する前に、必ず元のファイルをダウンロードしてバックアップを取る- 可能であればデータベース全体のバックアップも取る(phpMyAdminやサーバーの管理画面から)
wp-config.phpの編集手順
FTPソフト(FileZillaなど)やレンタルサーバーのファイルマネージャーを使って、wp-config.phpを開きます。
編集時の注意点:
- 文字コード: UTF-8(BOMなし)で保存してください
- 改行コード: LF(Unix形式)推奨。Windowsで編集する場合は特に注意
- メモ帳ではなく: TeraPad、VSCode、Sublime Textなど、プログラミング用エディタを使用
確認すべき4項目
| 項目 | 確認内容 |
|---|---|
DB_NAME | データベース名(例:your_database_name) |
DB_USER | ユーザー名(例:your_db_user) |
DB_PASSWORD | パスワード(サーバーで設定したもの) |
DB_HOST | ホスト名(詳細は下記参照) |
wp-config.phpの該当箇所:
define('DB_NAME', 'database_name_here');
define('DB_USER', 'username_here');
define('DB_PASSWORD', 'password_here');
define('DB_HOST', 'localhost');
DB_HOSTの詳細設定
DB_HOSTは環境によって異なります:
- 多くの場合:
localhost - localhostで動かない場合:
127.0.0.1を試す - ポート番号が必要な場合:
localhost:3306または127.0.0.1:3306 - 専用のホスト名がある場合:
- エックスサーバー:
mysql***.xserver.jp形式 - さくらインターネット:
mysql***.db.sakura.ne.jp形式 - ロリポップ:
mysql***.lolipop.jp形式
- エックスサーバー:
ヒント: 多くのレンタルサーバーでは、管理パネルから正しいデータベース情報を確認できます。一文字でも違うとエラーになりますし、誤ってスペースが入っていてもエラーになります。
データベース接続テスト
設定が正しいか確認するために、簡単なテストスクリプトを使うと便利です:
<?php
// db-test.php として保存し、WordPressのルートディレクトリに配置
$link = mysqli_connect('localhost', 'DB_USER', 'DB_PASSWORD', 'DB_NAME');
if (!$link) {
echo '<h1>接続失敗</h1>';
echo '<p>エラー内容: ' . mysqli_connect_error() . '</p>';
} else {
echo '<h1>接続成功!</h1>';
echo '<p>データベースに正常に接続できました。</p>';
mysqli_close($link);
}
?>
使い方:
- 上記コードの
DB_USER、DB_PASSWORD、DB_NAMEを実際の値に変更 db-test.phpとしてサーバーにアップロードhttps://あなたのサイト/db-test.phpにアクセス- 確認後は必ずファイルを削除(セキュリティのため)
3. データベースの「修復」を試す
管理画面で「修復が必要」と出た場合は、WordPressの自動修復機能を使いましょう。
⚠️ 超重要なセキュリティ警告
この機能はログイン不要で誰でもアクセスできます!
修復が終わったら必ず即座にコードを削除してください。放置すると第三者に悪用される危険があります。
修復手順
ステップ1: 修復モードを有効化
wp-config.phpの一番下(「編集が必要なのはここまでです」の直前)に以下のコードを追記します:
define('WP_ALLOW_REPAIR', true);
ステップ2: 修復ページにアクセス
https://あなたのサイトURL/wp-admin/maint/repair.php
ステップ3: 修復実行
- 「データベースの修復」ボタンをクリック
- または「データベースを修復して最適化する」を選択(推奨)
ステップ4: 【重要】コードを削除
修復が完了したら、必ず追記したコードを削除してください:
// この行を削除!
define('WP_ALLOW_REPAIR', true);
4. サーバー側のトラブルを疑う
設定に間違いがないのに直らない場合、自分の手には負えない「外側」の問題かもしれません。
よくあるサーバー側の問題
サーバーダウン
- 負荷が高すぎてデータベースサーバーが止まっている
- レンタルサーバーの「障害情報」ページを確認
ディスク容量不足
- サーバーの容量がいっぱいで、新しいデータを書き込めずエラーになる
- サーバー管理画面で使用容量を確認
同時接続数の上限
- 共有サーバーで同時接続数の制限に達した
- アクセス集中時やプラグインの影響で発生
メンテナンス中
- サーバー会社が定期メンテナンスを実施している
- 事前告知メールや障害情報を確認
この場合は、レンタルサーバーの「障害情報」を確認するか、サポートに問い合わせてみましょう。
5. その他の原因と対処法
PHPバージョンの問題
古いPHPバージョンでは、新しいMySQL/MariaDBに接続できない場合があります。
確認方法:
- サーバー管理画面でPHPバージョンを確認
- WordPress推奨: PHP 7.4以上(理想はPHP 8.0以上)
データベースユーザーの権限不足
データベースユーザーに適切な権限が付与されていない場合もエラーになります。
必要な権限:
- SELECT
- INSERT
- UPDATE
- DELETE
- CREATE
- DROP
- ALTER
確認方法: phpMyAdminやサーバー管理画面の「データベース」→「ユーザー権限」で確認
ファイアウォール・セキュリティプラグイン
セキュリティプラグインやサーバーのファイアウォールがデータベース接続をブロックしている可能性があります。
対処法:
- 一時的にセキュリティプラグインを無効化(FTPでプラグインフォルダをリネーム)
- サーバーのWAF設定を一時的にオフ
まとめ: 落ち着いて「鍵」を確認しよう
「データベース接続確立エラー」の解決策は、多くの場合設定の再確認に集約されます。
解決手順チェックリスト
- ✅ バックアップを取る(必須)
- ✅
wp-config.phpの4項目を最新情報に更新 - ✅ 文字コード・改行コードを確認
- ✅ データベース接続テストを実行
- ✅ 必要に応じて修復モードを実行(終了後はコード削除!)
- ✅ サーバー会社の障害情報を確認
- ✅ それでもダメならサポートに問い合わせ
このステップで、ほとんどのサイトは元通りに表示されるようになります。
予防策: 今後エラーを防ぐために
定期的なバックアップ
- 自動バックアッププラグインを導入(UpdraftPlus、BackWPupなど)
- 週1回以上の頻度で自動バックアップ
設定情報の記録
- データベース情報をパスワード管理ツールに保存
- サーバー移転時のチェックリストを作成
監視体制の構築
- 稼働監視サービスの利用(UptimeRobot、Pingdomなど)
- ダウン時に即座にメール通知
定期的なメンテナンス
- 使っていないプラグインの削除
- WordPressとプラグインの定期的な更新
- データベースの最適化(月1回程度)
このガイドで問題が解決しない場合は、より専門的なサポートが必要かもしれません。WordPressフォーラムやサーバー会社のサポートに相談してみてください。
