WordPressのデータベース接続確立エラーの原因と対処方法

WordPressのデータベース接続確立エラーの原因と対処方法
株式会社カチカ
執筆者 株式会社カチカ

株式会社カチカは、web制作やデジタルマーケティングを得意とする会社です。webの事でお困りであればお気軽にご連絡ください。
webサービスサイト:https://it.cachica.co.jp/

WordPressサイトを運営していると、「データベース接続確立エラー」という問題に直面することがあります。

本記事では、その原因と具体的な対処、解決方法について、チェックすべき手順や試しておきたい方法の一覧も交えながら解説します。

エラー内容を把握し、解決に役立つポイントを確認していきましょう。

とりあえず今すぐプロに復旧の相談がしたいという方はこちら↓

この記事でわかること
・「データベース接続確立エラー」とはなにか
・対処法、解決法

データベース接続確立エラーとは

データベース接続確立エラー

主なエラーメッセージ

実際にデータベース接続確立エラーが発生すると、サイト表示がこの様な画面↓↓になります。

データベース接続確立エラー

エラーメッセージは下記のパターンで表示される事もあります。

「Error establishing a database connection」
「データベースに接続できません」
「データベースへの接続に失敗しました」

これらのメッセージは、データベースへの接続が確立できないことを示しています。

エラーの基本的な説明

このエラーは、WordPressとデータベースが正しく通信できない場合に発生するエラーです。

WordPressは、ウェブサイトのコンテンツや設定情報をデータベースシステム(MySQLまたはMariaDB)に保存して運用しています。

このデータベースへの接続が途絶えると、ウェブサイトは正常に動作せず、エラーメッセージが表示されることがあります。

つまり、エラーが発生する状況としては、サーバーに問題がある時に発生することが多いです。

データベースのパスワードやユーザー名、データベース名などの設定情報が間違っている場合や、データベースの容量が上限に達している場合にも発生する可能性があります。

⚠ これから紹介する対処法は、WordPressの重要なファイルやデータベースを直接操作します。不安がある場合は専門家への相談をおすすめします。

手順を誤ると、サイトが二度と復旧できなくなる可能性があります。
作業前に必ずバックアップを取得し、自信がない方は専門家へご相談ください。


WordPress復旧の無料相談はこちら →

対処法1 「wp-config.php」の確認

対処法その1です。ここから順番に手順に沿って、問題ないかチェックしながら試してみてください。

なお、これ以降の作業はWordPressの重要なファイルを直接編集する内容になるため、対応は自己責任で行うようにしてください。

まずは「wp-config.php」の設定のエラーを疑います。

「wp-config.php」の確認

wp-config.phpファイルに記述されている、データベース接続情報が間違っていないか、以下の4行を確認します。

“`php
define(‘DB_NAME’, ‘xxxxx_wp01’); // データベース名
define(‘DB_USER’, ‘xxxxx_user’); // ユーザー名
define(‘DB_PASSWORD’, ‘xxxxxxxx’); // パスワード
define(‘DB_HOST’, ‘localhost’); // ホスト名

それぞれの値が、サーバーの管理画面で確認できるデータベース情報と一致しているかを照合します。ここが1文字でも違うとエラーになります。

※よくあるミスとして、以下のケースが多いです。

  • サーバーの管理画面でパスワードを変更したが、wp-config.php に反映していない
  • サーバー移行時にDB_HOSTの値が変わったのに、旧サーバーの値のまま
  • コピペ時に前後にスペースや改行が入ってしまった
  • DB_NAMEとDB_USERを取り違えている

サーバー別:wp-config.php の確認方法

サーバーの管理画面で正しいデータベース情報を確認し、wp-config.php の記述と照合します。
以下、主要サーバーごとの手順です。

エックスサーバーの場合

ステップ1:サーバーパネルにログイン エックスサーバーの「サーバーパネル」にログインします。

ステップ2:MySQL設定を開く サーバーパネルの「データベース」セクションから「MySQL設定」をクリックします。

ステップ3:データベース情報を確認 「MySQL一覧」タブで以下を確認します。

wp-config.php の項目エックスサーバーでの確認場所
DB_NAMEMySQL一覧 → データベース名
DB_USERMySQLユーザ一覧 → ユーザー名
DB_PASSWORD※パスワードは表示されない。
不明な場合は再設定が必要
DB_HOSTMySQL一覧 → 「MySQL○○.xserver.jp」と
表記されるホスト名

⚠️ エックスサーバーのDB_HOSTは localhost ではなく mysql○○.xserver.jp 形式です。ここを間違えているケースが非常に多いです。

ステップ4:パスワードが不明な場合 MySQLユーザ一覧 →対象ユーザーの「パスワード変更」からパスワードを再設定し、wp-config.php の DB_PASSWORD も同じ値に書き換えます。

⚠️ パスワードを変更したら、wp-config.php の更新も必ずセットで行うこと。片方だけ変えるとエラーが解消しません。

さくらのレンタルサーバーの場合

ステップ1:コントロールパネルにログイン さくらのレンタルサーバーの「コントロールパネル」にログインします。

ステップ2:データベース設定を開く 左メニューの「Webサイト/データ」→「データベース」をクリックします。

ステップ3:データベース情報を確認

wp-config.php の項目さくらでの確認場所
DB_NAMEデータベース一覧 → データベース名
DB_USERデータベース一覧 → ユーザー名
(通常はアカウント名と同じ)
DB_PASSWORD※コントロールパネルには表示されない。
不明な場合は再設定
DB_HOSTデータベースサーバ名(「mysql○○.db.sakura.ne.jp」形式)

⚠️ さくらのDB_HOSTも localhost ではありません。「mysql○○.db.sakura.ne.jp」形式で、データベース一覧画面に表示されます

ConoHa WINGの場合

ステップ1:コントロールパネルにログイン ConoHa WINGの「コントロールパネル」にログインします。

ステップ2:データベース設定を開く 「サイト管理」→「データベース」をクリックします。

ステップ3:データベース情報を確認

wp-config.php の項目ConoHa WINGでの確認場所
DB_NAMEデータベース一覧 → データベース名
DB_USERデータベース → ユーザー一覧 → ユーザー名
DB_PASSWORDユーザーをクリック → パスワード表示
(目のアイコン)
DB_HOSTlocalhost(ConoHa WINGはlocalhost)

⚠️ ConoHa WINGはDB_HOSTが localhost で正しいです。エックスサーバーやさくらとは異なるので注意してください。

その他のサーバーの場合

上記以外のサーバー(ロリポップ、mixhost、カラフルボックスなど)でも、基本的な確認の流れは同じです。

  1. サーバーの管理画面にログイン
  2. 「データベース」のメニューを探す
  3. DB名、ユーザー名、ホスト名を確認
  4. wp-config.php の記述と照合

ポイントはDB_HOST の値がサーバーによって異なることです。

サーバーDB_HOST の形式
エックスサーバーmysql○○.xserver.jp
さくらmysql○○.db.sakura.ne.jp
ConoHa WINGlocalhost
ロリポップmysql○○.phy.lolipop.lan
mixhostlocalhost
カラフルボックスlocalhost

wp-config.php のファイルアクセス方法

wp-config.php を確認・編集するには、FTPまたはサーバーのファイルマネージャーを使います。

サーバーのファイルマネージャーを使う方法(おすすめ)

FTPソフトを持っていない場合は、各サーバーのファイルマネージャー機能が手軽です。

サーバーファイルマネージャーの場所
エックスサーバーサーバーパネル →「ファイルマネージャ」(別メニュー)
さくらコントロールパネル →「Webサイト/データ」→「ファイルマネージャー」
ConoHa WING「サイト管理」→「ファイルマネージャー」

操作手順(共通):

  1. ファイルマネージャーを開く
  2. 対象ドメインのディレクトリに移動(例: /public_html//wp/
  3. wp-config.php を見つける
  4. ファイルを選択 →「編集」または「コードエディタ」で開く
  5. DB_NAME, DB_USER, DB_PASSWORD, DB_HOST を確認
  6. 修正が必要な場合は編集して保存

⚠️ 編集前に必ずファイルのバックアップ(コピー)を取ること。記述を間違えるとサイトが完全に表示されなくなります。

FTPクライアントを使う方法

FileZilla等のFTPクライアントを使用する場合:

  1. FTP接続情報(ホスト名・ユーザー名・パスワード)をサーバー管理画面で確認
  2. FileZillaで接続
  3. WordPressインストールディレクトリの直下にある wp-config.php をダウンロード
  4. テキストエディタで開いて確認・編集
  5. 編集後、アップロードして上書き

パーミッション(権限)の確認

wp-config.php のパーミッションが不適切だとエラーの原因になります。

状態パーミッション
推奨(通常)644
よりセキュア600
NG(危険)777 や 666

確認方法: FTPクライアントまたはファイルマネージャーで wp-config.php を右クリック →

プロパティ / パーミッション変更

対処法2 サーバー側の問題の場合

サーバー側の問題を切り分けるための手順です。上から順に確認してください。

チェック手順(フローチャート形式)

① サーバーの障害情報を確認
 → 障害中なら復旧を待つ
 ↓ 障害なし

② サーバー管理画面にログインできるか
 → ログインできない → サーバー会社に問い合わせ
 ↓ ログインできる

③ phpMyAdmin にアクセスできるか
 → アクセスできない → DBサーバー自体がダウンしている可能性 → サーバー会社に問い合わせ
 ↓ アクセスできる

④ phpMyAdmin でデータベースの中身が見えるか
 → テーブルが表示される → wp-config.php の設定ミスの可能性(対処法1に戻る)
 → テーブルが壊れている → 対処法3(データベース修復)へ

サーバー別:障害情報の確認方法

サーバー障害情報の確認方法
エックスサーバー障害・メンテナンス情報 / サーバーパネル →「障害情報」
さくらさくらの障害情報 / コントロールパネル上部のお知らせ
ConoHa WINGConoHa障害情報
ロリポップロリポップ障害情報

✅ 自分のサーバーだけの問題か、他のユーザーにも影響しているかを判断する材料になります。

サーバー別:phpMyAdmin へのアクセス方法

phpMyAdmin にアクセスできれば、DBサーバー自体は動いていることが確認できます。

■ エックスサーバー サーバーパネル →「データベース」→「phpmyadmin(MySQL)」をクリック。 MySQLユーザー名とパスワードでログイン。

■ さくらのレンタルサーバー コントロールパネル →「Webサイト/データ」→「データベース」→ 対象DBの「phpMyAdmin」ボタン。 DB名のプレフィックス+ユーザー名でログイン。

■ ConoHa WING コントロールパネル →「サイト管理」→「データベース」→ 対象DBの「phpMyAdmin」をクリック。 DBユーザー名とパスワードでログイン。

phpMyAdmin にログインできない場合(パスワード不明)

phpMyAdmin にログインしようとしたら「パスワードが分からない」というケースは非常に多いです。 担当者が変わった、サーバー移行後に引き継ぎがなかった、などの理由でDBユーザーのパスワードが不明になっていることがあります。 この場合、サーバーの管理画面からDBユーザーのパスワードを再設定できます。

サーバー別:DBパスワードの再設定方法

サーバー手順
エックスサーバーサーバーパネル →「MySQL設定」→「MySQLユーザ一覧」→ 対象ユーザーの「パスワード変更」
さくらコントロールパネル →「データベース」→ 対象DBの「設定」→ パスワード変更
ConoHa WING「サイト管理」→「データベース」→ ユーザーを選択 → パスワード変更

⚠️ 最重要注意:パスワード再設定後、wp-config.php の DB_PASSWORD も必ず同じ値に書き換えること。

サーバー管理画面でパスワードを変更しただけでは、wp-config.php に古いパスワードが残ったままです。この状態だとDBとの接続情報が食い違い、パスワード再設定が原因で新たにデータベース接続確立エラーが発生します。

「直そうとして壊す」典型的なパターンなので、必ずセットで対応してください。

手順まとめ:

  1. サーバー管理画面でDBパスワードを再設定
  2. 新しいパスワードをメモ
  3. wp-config.php の DB_PASSWORD を新しいパスワードに書き換え
  4. wp-config.php を保存・アップロード
  5. phpMyAdmin に新しいパスワードでログイン

データベース容量の確認

データベース容量が上限に達するとエラーが発生します。

サーバーDB容量上限確認場所
エックスサーバー5GB / DBMySQL設定 → 使用量
さくらプランにより異なるデータベース一覧 → 使用量
ConoHa WING5GB / DBデータベース一覧 → 使用量

容量が逼迫している場合の対処:

  • 不要なリビジョンの削除(wp_postsテーブルの肥大化が主因)
  • スパムコメントの一括削除
  • 不要なプラグインのデータ削除
  • 必要に応じてプラン変更

ここまで試しても解決しない場合は → WordPress復旧の相談はこちら >>>

対処法3 データベースが破損している場合

対処法その3です。データベースの破損を疑います。

ストレージエンジンによる違い(重要)

WordPressのテーブルには「MyISAM」と「InnoDB」の2種類のストレージエンジンがあります。 WordPress 5.x以降はデフォルトで InnoDB が使われており、phpMyAdminの「チェックしたものを:」プルダウンに『「テーブルを修復する」が表示されません』。

⚠️ 「修復メニューが見当たらない!」という場合はInnoDBテーブルです。MyISAMとInnoDBで対処法が異なるので、以下を確認してください。

テーブルのエンジンを確認する方法

  1. phpMyAdmin にログイン
  2. 対象のデータベースを選択
  3. テーブル一覧の「種別」列を確認(「InnoDB」または「MyISAM」と表示される)

MyISAM テーブルの場合 「チェックしたものを:」プルダウンに「テーブルを修復する」が表示されます。

手順:

  1. 壊れている可能性のあるテーブルにチェックを入れる(または全選択)
  2. 画面下部の「チェックしたものを:」→「テーブルを修復する」を選択
  3. 実行 ※ 古いWordPressサイトや一部のプラグインがMyISAMを使っている場合があります。

InnoDB テーブルの場合(WordPress 5.x以降の標準) InnoDBにはphpMyAdminの「修復」メニューが使えません。代わりに以下の方法で対処します。

  • 方法1:WordPress の修復機能を使う(推奨) 後述の define('WP_ALLOW_REPAIR', true); を使う方法が最も安全です。WordPress の修復機能は InnoDB テーブルにも対応しています。
  • 方法2:phpMyAdmin の SQL タブからコマンドを実行 phpMyAdmin の「SQL」タブで以下のコマンドを実行すると、テーブルの整合性チェックができます。
SQL
-- テーブルの状態チェック(破損の有無を確認)
CHECK TABLE wp_options, wp_posts, wp_postmeta, wp_users;

エラーが見つかった場合:

SQL
-- InnoDB テーブルの最適化(再構築による修復効果あり)
ALTER TABLE wp_options ENGINE=InnoDB;
ALTER TABLE wp_posts ENGINE=InnoDB;

⚠️ SQLコマンドの実行はデータベースに直接影響します。慣れていない場合は、WordPress の修復機能(方法1)を使うか、専門業者に相談してください。

  • 方法3:バックアップから復元 上記で解決しない場合は、サーバーの自動バックアップから復元するのが確実です。各サーバーの自動バックアップ機能については「対処法2」のサーバー別セクションを参照してください。

⚠️ いずれの方法でも、作業前にバックアップの取得を強く推奨します。

WordPress修復機能を使う前の注意点

これから紹介するWordPressの機能を使うにあたり、以下の点にご注意ください。

  • 必ず修復後に該当のコード行(define('WP_ALLOW_REPAIR', true);)を削除してください。
  • 修復ページ(/wp-admin/maint/repair.php)は認証なしでアクセスできるため、作業後すぐに削除することがセキュリティ上重要です。
  • 「データベースの修復」と「データベースの修復および最適化」の2つのボタンがありますが、まずは「修復」のみを実行してください。最適化は負荷がかかるため、問題解決後に改めて実施を検討しましょう。

WordPressのデータベース修復機能を使用する方法

WordPressには、データベースを修復するための機能が備わっています。

1.wp-config.php ファイルの編集 WordPressのルートディレクトリにある wp-config.php ファイルを編集します。データベース修復機能を有効にするために、↓↓のコードを、wp-config.phpにコピペしてください。

PHP
define('WP_ALLOW_REPAIR', true);

このコードは通常、/* That's all, stop editing! Happy blogging. */ の上やファイルの最後の方に追加することが推奨されます。

2.データベース修復ページへのアクセス
wp-config.php ファイルを編集した後、ブラウザを使用して http://〇〇.com/wp-admin/maint/repair.php にアクセスします。
ここで 〇〇.com はあなたのWordPressサイトのURLに置き換えてください。

3. データベースの修復または最適化 アクセスすると、2つのオプションを選択ページが表示されます。 以下の二つのオプションがあります。 ・データベース修復: 破損している可能性のあるデータベーステーブルを修復します。 ・データベース最適化: データベースを最適化して、パフォーマンスを向上させます。

「データベース修復」を選択、修復します。

4.wp-config.php からのコード行の削除 データベースの修復または最適化が完了した後、セキュリティ上の理由から wp-config.php ファイルから define('WP_ALLOW_REPAIR', true); の行を削除します。 この設定を有効にしたままにすると、認証なしで誰でもこのページにアクセスできてしまうためです。

この機能を使用することで、WordPressサイトのデータベース関連の問題を簡単に解決できることが多いです。 ただし、重大なデータベースの問題や、繰り返し発生する問題には、より専門的な対応が必要な場合があります。 上記の理由から、必ず define('WP_ALLOW_REPAIR', true); の行を削除します。

バックアップからデータを復元する方法

もしバックアップがあれば、最新のバックアップを使用してデータベースを復元するという方法をとることもできます。

こういう時のために、データベースのバックアップは、定期的に作成しておくことが重要です。
バックアップからデータを復元することで、データベースの破損によるデータ損失を防ぐことができます。

まとめ

ポイント

  • 「データベース接続確立エラー」は、WordPressとデータベースが正しく通信できない場合に発生する
  • 対処法1 「wp-config.php」の確認
  • 対処法2 サーバー側の問題の場合
  • 対処法3 データベースが破損している場合

データベース接続エラーの原因とその解決方法についての重要ポイントをまとめました。 ほとんどの場合はこの記事で説明したとおりの、上記のどれかで対応できるはずです。 しかしプラグインの予期せぬ干渉など、原因が深い場所にあることもあります。

もし直らない場合は専門業者にご相談ください。 WordPress復旧の相談はこちら >>>

安定したサーバー環境を提供するレンタルサーバー会社を選ぶことが大切です。 有名で信頼のあるサーバー会社は、サーバーの安定性やセキュリティ対策など、様々な面で優れています。 不具合を機に、レンタルサーバー業社を改めて選定しても良いかもしれません。

今回ご紹介したようなエラーが出ていて解決できない場合は、是非カチカにご相談ください。 専門のスタッフがサポートします。診断は無料です。