Categories: WordPress

【更新】データベースエラー 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. 実行

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

This post was last modified on 11/04/2019 3:10 PM

ゆきを

ジャンルに拘らずに、好きなことを書いてます。 趣味であったり、覚書きであったりします。 むずかしい言葉を使わず、流行りの言葉を使わないように書いてます。

Share
Published by
ゆきを
Tags: WP 設定

Recent Posts

【更新】TinyMCE Advanced の設定方法と使い方

プラグインはどうインストールし…

11/11/2020

Amazonjsのエラー

Amazonjsのエラー 今回…

05/07/2020

【更新】構造化エラーで確認しておくこと

構造化データをマークアップ 構…

02/08/2020

【更新】AMP 構造化データエラーの修復

構造化データ Googleなど…

07/10/2019