データベース エラー

データベースエラー Error establishing a database connectionの対処


スポンサーリンク

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

データベース接続確立エラー、Error establishing a database connectionが表示された時の対処法と復元を記載しておきます。

プラグインでデータベース保存中に、ウェブサイトに

Error establishing a database connection

というエラーが表示され、真っ白。WordPressの管理画面は表示されません。しかし、管理画面( http://example.com/wp-admin/ )には解決方法が記載されています。

スポンサーリンク

管理画面

管理画面( http://example.com/wp-admin/ )に、次のメッセージが表示されます。

1つ以上のデータベースが利用できません。修復する必要があるかも知れません。

データベース エラー

repaired をクリックすると、次のメッセージが表示されます。

データベース エラー

因みにメッセージが表示されるURLは・・

  • http://example.com//wp-admin/maint/repair.php

このページを使用してデータベースの問題を自動的に修復できるようにするには、wp-config.phpファイルに次の行を追加し、このページをリロードしてください。

define(‘WP_ALLOW_REPAIR’, true);

この一行を wp-config.phpに追加すると、自動で修復してくれるとのこと。このページをリロードするのでページは閉じないでおきます。

スポンサーリンク

define(‘WP_ALLOW_REPAIR’, true);

wp-config.php

wp-config.phpには、データベースへの接続(データベース名やパスワードなど)の情報が含まれています。その wp-config.php に上の一行を加えます。

wp-config.php は、WordPressをインストール後の設定で得た情報により作られます。WordPressのファイルディレクトリの直下に置かれています。

データベース エラー

define(‘WP_ALLOW_REPAIR’, true); を追加する

define(‘WP_ALLOW_REPAIR’, true); はデータベースを自動で最適化してくれます。


この定義( define(‘WP_ALLOW_REPAIR’, true); )だけで機能は有効化されます定義を設定すれば、ユーザーがログインして機能にアクセスする必要はありません。この定数の目的は壊れたデータベースの修復を主眼としているためです。多くの場合、データベースが壊れるとユーザーはログインさえできません。

セキュリティ上、この定義を追加後、修復最適化が終わると削除します。

wp-config.php を編集します。

追加する場所はどこでもいいですが、自動修復最適化が終わったら削除しますので、削除しやすいところに追加します。

リロード

このページを利用してとメッセージが表示されているページをリロードします。ページのURLは・・

  • http://example.com//wp-admin/maint/repair.php

以下の選択ができます。

  • データベースの修復(Repair Database)
  • データベースの修復と最適化(Repair and Optimize Database)

どちらかを選び修復します。

データベース エラー

修復完了と、自動最適化の定義( define(‘WP_ALLOW_REPAIR’, true); )を削除するようメッセージが表示されます。

データベース エラー

上記定義でも自動修復最適化ができない時

原因はサーバー側や様々なことが原因となり得るので、一応レンタルサーバーに問い合わせてみることも良いと思いますが、私が行い改善したことを記載しておきます。

wp-config.php の見直し

データベース名、ユーザー名、パスワードを確認します。

/** WordPress のためのデータベース名 */
define( ‘DB_NAME’, ‘database_name_here’ );

/** MySQL データベースのユーザー名 */
define( ‘DB_USER’, ‘username_here’ );

/** MySQL データベースのパスワード */
define( ‘DB_PASSWORD’, ‘password_here’ );

/** MySQL のホスト名 */
define( ‘DB_HOST’, ‘localhost’ );

/** データベースのテーブルを作成する際のデータベースの文字セット */
define( ‘DB_CHARSET’, ‘utf8’ );

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define( ‘DB_COLLATE’, ” );

データベース名やパスワードなど問題がないようでしたので、データベースを復元してみました。

データベースの復元

管理画面に入ることができませんので、当然プラグインなどでの復元はできません。数日前にバックアップしていたデータベースがありましたので、それを利用して phpMyAdmin で復元しました。

私のデータベースのバックアップファイルはgzip形式(拡張子 .gz)で圧縮されたファイルです。その他拡張子 .sql .tar.gz などで圧縮されている場合もあります。

phpMyAdmin インポート(復元)

テーブルを指定して、インポートします。

データベース エラー

phpMyAdminで復元する手順

  1. phpMyAdmin にログインする
  2. データベースをクリックする
  3. テーブル(データベース名)を選択
  4. インポートタブを開く
  5. ファイルを選択をクリック
  6. ファイルの形式で SQLを選択
  7. 実行

自動修復・最適化で改善されなかった場合、データベースの復元で改善しましたが、エラーの原因も様々で特定できませんし、オススメはできません。