VPS上で「データベース接続確立エラー」と出たときの対処法
現状の把握:まず最初に発生した事象
・jetpackでオフライン通知が来る。
・サイトにアクセスすると「データベース接続確立エラー」というメッセージが表示される
⇒まず最初にapacheが動作していることを確認。
⇒apache, MariaDB間の接続がうまくいってないのかなと予想。
原因の追求:apache,DBのステータスを確認
・apacheのステータスとMariaDBのステータスを確認。
1 |
service httpd status |
1 |
systemctl status mariadb |
⇒apacheが動作していることを確認。
⇒mariaDBが動作していないことを確認。
・mariaDBを再起動できるか試行。
1 |
systemctl restart mariadb |
⇒再起動できない。
1 |
Job for mariadb.service failed because a fatal signal was delivered causing the control process to dump core. See "systemctl status mariadb.service" and "journalctl -xe" for details. |
というエラーメッセージが出るので、「journalctl -xe」コマンドで確認するがよくわからない。
・MariaDBのlogを確認する。
1 |
vi /var/log/mariadb/mariadb.log.rpmsave |
すごくわかりづらいが、ログの中に「The InnoDB memory heap is disabled」と書かれているのを確認。
⇒freeコマンドでメモリを確認すると明らかに空きメモリが少ない事がわかった。
対策の実施:メモリの開放(プロセスの削除)
・psコマンドで利用中のプロセスを確認した。
⇒ここでchromeのプロセスが異常に多いことを確認。
⇒seleniumで立ち上げたchromeのプロセスがうまくクローズされてなかったことに気付く。
(最近お試しでseleniumを利用して遊んでいたことを思い出しゾッとする。。)
・killallコマンドでchromeのプロセスをとりあえず全てkillする。
⇒freeでメモリが開放されていることを確認。
・MariaDBを再起動させる。
1 |
systemctl restart mariadb |
・サイトにアクセスし起動されたことを確認した。