「Error establishing a database connection」の対処方法

1.Error establishing a database connection発生

60爺は、毎朝ほぼ決まった時間に、search console と Googleアナリティクスを実行しています。

今日も、search console を実行したのですが、URL検査をしようとした所、何とサーバと接続できない現象となりました。

青くなって、ブログを開こうとしたら表題のエラーが表示されたんです。

「データベース接続確立エラー」です!

本エラーは、ウェブサイトがデータベースとアクセスができない場合に表示されるものです。

つまり、WordPressウェブサイトの全ての情報は、データベースであるmySQL(mariaDB)に格納されていますが、何らかの原因で、その情報を取り出せなくなっているのです。

2.対処方法

(1) mySQL稼働確認

このエラーに遭遇したら、まず、mySQL(mariaDB)が稼働しているかどうか確認します。

それには、mySQL(mariaDB)にログインできるか確認するのが早道です。

早速、サーバにログインして、mySQL(mariaDB)にログインできるか試してみましょう。

$ mysql -u root -p

パスワードを入力すると、次のエラーが表示されました。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

このエラーは、mySQL(mariaDB)が稼働していないときに表示されるものです。

(2) 対処方法

ここまでくれば対処方法は簡単です。mySQL(mariaDB) を再スタート(restart)すればいいだけです。

以下のページにあった restart コマンドを使用して再スタートしてみました。

$ sudo systemctl restart mysql.service

このコマンドを投入したところ、すんなりと受け入れられました。

以下のコマンドで、mySQL(mariaDB)の状況を見てみますと、どうやら無事に起動されたようです。

$ ps aux|grep mysql
 root      1550  0.0  0.1   1912  1128 ?        S    10:26   0:00 /bin/sh /usr/bin/mysqld_safe
 mysql     1899  0.2  9.6 325064 84916 ?        Sl   10:26   0:35 /usr/sbin/mysq d --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
 XXXXXXXX  17747  0.0  0.2   4688  1884 pts/0    S+   14:59   0:00 grep --color=auto mysql

そこで、ブログにログインしてみると、問題なくログイン画面が表示され、ブログを普通に見ることが出来るようになりました。

データベースには特に異常はなかったようで、これだけで今回は復旧することが出来ました。

3.何故 mySQL が停止したのか

何故 mySQL(mariaDB)が停止したのでしょうか?

ちなみに、googleアナリティクスを見てみると、7時台に68件ものアクセスが来ています。何らかの攻撃を受けていたのでしょうか?

そこで、mySQL(mariaDB)のエラーログを取得してみました。

$ sudo cat /var/log/mysql/error.log | grep ERROR password for XXXXXXX:
 190328  7:44:58 [ERROR] Plugin 'InnoDB' init function returned error.
 190328  7:44:58 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
 190328  7:44:58 [ERROR] Unknown/unsupported storage engine: InnoDB
 190328  7:44:58 [ERROR] Aborting 

なんと、エラーが発生し、7:44:58 に Abort しています。

こいつもググってみると、英語のページにバッファの問題の可能性を挙げています。うーん、技術力のない 60爺には、よくわかりませんな。

まあ、少し様子を見てみますか?

同じような状況で頻繁に落ちるようなら、このページに従い、バッファを広げてみるのも一つの手ですね。

それにしても、MySQL の restart だけで済んでことは不幸中の幸いでした。

良かったです!