先週あたりから wordpress でDB接続エラーとなり
先日ようやく復旧できたので
解決策のメモです
なお、使用しているサーバはGMOクラウド public になります
まれにDB接続エラーになることがいままであり
そのときにはネットワークの再構築をすれば復旧していました
しかし、今回はこれでも復旧できなかったので数日かかってしまいました
原因は ディスク容量がいっぱいになり、それが原因で mysql の起動ができなかったため
というものです
以下、今回の対処方法のメモログになります
DB接続エラーが表示され、サイトにアクセスできないため
ssh でログインし
mysql -u root -p
で一度DBを確認しようとしたところ
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
となっていたので
mysqlが突然起動しなくなる 第二幕
を参考に
mysqld_safe
としたところ
mysqld_safe Number of processes running now: 0
となってしまった
このエラーで検索したところ
mysqldが落ちてた時の対応メモ
によれば
によれば
mysql が落ちているらしい
less /var/log/mysqld.log
でログを確認
InnoDB: Initializing buffer pool, size = 128.0M
とあったので
これで検索し
MySQLが「Fatal error: cannot allocate memory for the buffer pool」となり起動しない問題
にれよれば
buffer pool のメモリ割り当てが小さいのが原因になることがあるらしいので
vim /etc/my.cnf
でファイルを開き
[mysqld]
の下へ
innodb_buffer_pool_size = 512M
を追記
しかしこれだと
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
となってしまう
エラーをみると mysql.sock がないのが原因と思い
これを作成することに
MySqlのソケットエラーを解決する
を参考にしたところ、
mysql.sock は
mysqlを再起動すると、/var/lib/mysql/mysql.sockが自動的に作成される
とのこと
しかし、mysql を再起動しようとすると
ERROR! MySQL server PID file could not be found!
というエラーになり mysql の起動に失敗
このため mysql が起動できないということで検索した結果
MySQLが起動できない
によれば
ディスクがいっぱいの場合、mysql の起動がエラーになるとのこと
これで検索してみると
mysqlが起動しないのは容量がいっぱいだからかも。
にも書かれていました
コマンドでエラーを再度確認するためログファイルを
tail コマンドで表示します
tail -n 40 /var/log/mysqld.log
なお、tail コマンドについては
【 tail 】 ファイルの末尾を表示する
が参考になります
これでみると
mysql Errcode: 28
と表示されています
ということで
df -h
で調べたところ Available のところが 0% ….
このため、ディスク容量を追加することにしました
なお、使用するディスクの追加については
GMOクラウド public の場合
ディスク容量の編集(拡大/縮小)
に画像入りで説明があるので
これを元にディスクを追加したところ
再起動後に無事にサイトが復旧しました