4. トラブルシューティング

Error establishing a database connection

今朝このWebサイトに接続すると、「Error establishing a database connection」とのメッセージが出力されページが表示できない。管理者画面に接続すると、DBサーバがDOWNしているとのメッセージを確認。

DBサーバがダウンしている模様

DBサーバがダウンしている模様

mysqldプロセスが停止していることを確認。暫定対処としてmysqldを起動。本Webサイトへ接続可能となったことを確認。

mysqldプロセスがダウンしていることを確認
# ps -ef | grep mysqld | grep -v grep
# 

mysqld 起動
# service mysqld start
Restarting mysqld (via systemctl):  [  OK  ]
#

mysqldプロセス起動を確認
# ps -ef | grep mysqld | grep -v grep
root     15252     1  0 08:17 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql    15480 15252  0 08:17 ?        00:00:20 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
#

mysqlログの場所を確認。

# more my.cnf
   :
[mysqld_safe]
log-error=/var/log/mysqld.log
   :

mysqlログを確認。

# tail -100 mysqld.log | more
   :
2016-02-02 02:22:08 14558 [Note] InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
2016-02-02 02:22:09 14558 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2016-02-02 02:22:09 14558 [ERROR] Plugin 'InnoDB' init function returned error.
2016-02-02 02:22:09 14558 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2016-02-02 02:22:09 14558 [ERROR] Unknown/unsupported storage engine: InnoDB
2016-02-02 02:22:09 14558 [ERROR] Aborting

バッファが足りない模様。スワップ領域を追加してあげる必要がありそう。

# free
              total        used        free      shared  buff/cache   available
Mem:        1015944      584592      189800       57468      241552      216008
Swap:             0           0           0
#

今日は時間がないので、以下を参考に後日対応することとする。
Amazon EC2 の t1.microインスタンスでMySQLがよく落ちる

翌日もDBが落ちていたので、SWAP追加。

# dd if=/dev/zero of=/swapfile bs=1M count=1024
1024+0 レコード入力
1024+0 レコード出力
1073741824 バイト (1.1 GB) コピーされました、 16.5406 秒、 64.9 MB/秒
#
# mkswap /swapfile
スワップ空間バージョン1を設定します、サイズ = 1048572 KiB
ラベルはありません, UUID=471c553d-f566-421b-8683-d37c89557589
#
# swapon /swapfile
swapon: /swapfile: 安全でない権限 0644 を持ちます。 0600 がお勧めです。
#
# chmod 600 /swapfile
# ll -h /swapfile
-rw-------. 1 root root 1.0G  2月  4 00:03 /swapfile
#
# free
              total        used        free      shared  buff/cache   available
Mem:        1015944      555480       85664       57468      374800      251572
Swap:       1048572           0     1048572
#

ファイルシステム(/)領域逼迫

久しぶりにファイルシステムの容量確認したら、/(ルート)領域が残り僅かになっていた。

# df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/xvda2        10G  8.8G  1.3G   88% /
devtmpfs         480M     0  480M    0% /dev
tmpfs            496M     0  496M    0% /dev/shm
tmpfs            496M   57M  440M   12% /run
tmpfs            496M     0  496M    0% /sys/fs/cgroup
tmpfs            100M     0  100M    0% /run/user/1000
#
# cd /
# du -sk data/ etc/ media/ opt/ root/ tmp/ var/ boot/ dev/ home/ mnt/ run/ srv/ sys/ usr/ | sort -nr
4043140 var/		# /usrはバイナリが置かれているので仕方ないとして、/varが問題
2509568 usr/
216628  boot/
57432   run/
 :
# cd /var
# du -sk adm/ crash/ empty/ games/ kerberos/ local/ log/ nis/ preserve/ spool/ var/ yp/ cache/ db/ ftp/ gopher/ lib/ opt/ www/ | sort -nr
2843616 www/		# やっぱり問題はwwwディレクトリ配下
439872  cache/
380608  log/
 :
# cd /var/www/html/wordpress/wp-content/uploads
# du -sk * | sort -nr
2456152 file-backup	# バックアップデータが格納されているfile-backupディレクトリが問題の模様
85388   2016
65080   database-backup
 :
# du -sk * file-backup
193112  2018-03-04_00-02-02_TG75HZRG01.tar.gz
205048  2018-03-11_00-00-31_6275HZWI01.tar.gz
205796  2018-03-18_00-02-06_5K75HZTX01.tar.gz
205800  2018-03-25_00-04-54_BW75HZSE01.tar.gz
205796  2018-04-01_00-07-51_DG75HZWW01.tar.gz
205796  2018-04-08_00-07-39_F275HZQE01.tar.gz
205796  2018-04-15_00-09-39_JG75HZSD01.tar.gz
205800  2018-04-22_00-02-24_4675HZRJ01.tar.gz
205800  2018-04-29_00-04-15_5S75HZWQ01.tar.gz
205800  2018-05-06_00-15-18_NG75HZRQ01.tar.gz
205796  2018-05-13_00-03-36_G675HZRM01.tar.gz
205796  2018-05-20_00-04-42_C675HZQU01.tar.gz

BackWPUp というプラグインでバックアップの設定していたが、見直しが必要な模様。週一でバックアップを12個(3ヶ月保持)にしていたので、8個(2ヶ月)保持に変更して、2ヶ月以上前のバックアップは削除実施。

# df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/xvda2        10G  8.0G  2.1G   80% /
devtmpfs         480M     0  480M    0% /dev
tmpfs            496M     0  496M    0% /dev/shm
tmpfs            496M   57M  440M   12% /run
tmpfs            496M     0  496M    0% /sys/fs/cgroup
tmpfs            100M     0  100M    0% /run/user/1000

2GBの空きがあれば大丈夫でしょう!