MySQLのエラー『Error Establishing a Database Connection』の解決方法

MySQLのエラー『Error Establishing a Database Connection』の解決方法

『Error Establishing a Database Connection』は、WordPressやその他のアプリケーションがMySQLデータベースに接続できないときに発生するエラー。このエラーが発生すると、サイトが完全にダウンする可能性があるため、早急な対処が必要になる。原因は複数あり、データベースの認証情報の誤り、MySQLサーバーの停止、ファイルの破損などが考えられる。

1. エラーの発生条件

このエラーは、以下のような状況で発生する。

  • データベースの認証情報(ホスト名、ユーザー名、パスワード)が誤っている
  • MySQLサーバーがダウンしている
  • データベースの破損
  • サーバーのリソース不足
  • 設定ファイル(wp-config.phpなど)の問題

2. MySQLサーバーが稼働しているか確認する

まず、MySQLサーバーが動作しているか確認する。

sudo systemctl status mysql

もしMySQLが停止している場合、再起動する。

sudo systemctl restart mysql

3. MySQLのログを確認する

エラーの詳細を確認するために、MySQLのログファイルをチェックする。

sudo cat /var/log/mysql/error.log

ログに「Access denied」や「Connection refused」などのエラーメッセージが含まれている場合は、それに応じた対処が必要になる。

4. WordPressのデータベース接続情報を確認する

WordPressの場合、wp-config.phpにデータベースの接続情報が記述されている。以下の内容が正しいか確認する。

define('DB_NAME', 'database_name');
define('DB_USER', 'database_user');
define('DB_PASSWORD', 'database_password');
define('DB_HOST', 'localhost');

特に、DB_HOSTが「localhost」ではなく、リモートデータベースの場合は適切なホスト名にする。

5. MySQLユーザーの権限を確認する

データベースユーザーの権限が適切に設定されているか確認する。

mysql -u root -p

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost' IDENTIFIED BY 'database_password';
FLUSH PRIVILEGES;

6. データベースの破損を確認し修復する

データベースが破損している可能性がある場合、修復を試みる。

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost' IDENTIFIED BY 'database_password';
FLUSH PRIVILEGES;

WordPressの場合、wp-config.phpに以下を追加し、修復ツールを有効にすることもできる。

define('WP_ALLOW_REPAIR', true);

その後、以下のURLにアクセスし、データベースの修復を実行する

http://yourdomain.com/wp-admin/maint/repair.php

ダのサポートに問い合わせるのが最善の手段となる。