LoginSignup
4
4

More than 5 years have passed since last update.

WordPressで「データベース接続確立エラー」の障害が出た時の対処

Last updated at Posted at 2018-08-16

状況

AWS EC2上でWordPressを構築し、数ヶ月間運用していたところ、突如「データベース接続確立エラー」の画面が表示されるようになってしまいました。
ブログ記事画面だけでなく、管理画面も同じ表示です。

要約

  • EC2のメモリ使用量がいっぱいになり、MySQLプロセスが終了され、『データベース接続確立エラー』が発生
  • EC2のインスタンス再起動・MySQLサービスの起動で対処。

原因調査・対応

EC2にsshで接続

まずは sshで接続 します。

ssh -i "EC2のPEMファイル.pem" ec2-user@EC2のアドレス.compute.amazonaws.com

メモリ使用量チェック

しばらく使って突然発生、という状況なので、メモリがいっぱいになってないかをチェックします。

free -tm

used/freeの項目を見て、freeが少なくなっていたので、 EC2インスタンスを再起動 します。

再起動後にメモリ使用量チェック

再びメモリ使用量チェック。

free -tm

freeの量はかなり多くなっています。しかし、ブログ画面は相変わらず『データベース接続確立エラー』のまま。

MySQL診断

『データベース接続確立エラー』ということなので、データベースの状況を見ます。

MySQLに接続できるか確認

mysql -u ユーザー名 -pパスワード

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

繋がらない・・・!
ちなみにMySQLのユーザー名とパスワードは wp-config.php に書かれてることが多いです。

MySQLのプロセスが動いているか確認

ps -ef |grep mysqld

ec2-user 2622 2522 0 01:01 pts/0 00:00:00 grep --color=auto mysqld

む、プロセスがやっぱりない。

MySQLのポートが設定されてるか確認

sudo netstat -tnap|grep mysql

→レスポンスは空
ポートも使われてない

MySQL起動

MySQLが起動していなかったので、 MySQLを起動 させます。

sudo service mysqld start

Starting mysqld: [ OK ]

結果

起動しました!

まとめ

  • EC2のメモリ使用量がいっぱいになり、MySQLプロセスが終了され、『データベース接続確立エラー』が発生した。
  • EC2のインスタンス再起動することで、メモリをお掃除した。
  • 再起動後、MySQLサービスが起動していなかったので、手動でMySQLサービスを起動した。
  • 自動でMySQLも起動するように設定しておくとよい。
  • t2.nano等のメモリが少ないインスタンスの場合、放置しているだけでメモリの使用量がいっぱいになり、『データベース接続確立エラー』が発生しやすい。
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4