データベース接続確立エラー
データベース接続確立エラー、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で復元する手順
- phpMyAdmin にログインする
- データベースをクリックする
- テーブル(データベース名)を選択
- インポートタブを開く
- ファイルを選択をクリック
- ファイルの形式で SQLを選択
- 実行
自動修復・最適化で改善されなかった場合、データベースの復元で改善しましたが、エラーの原因も様々で特定できませんし、オススメはできません。