システムのクラッシュ後、再起動しても MySQL が起動しない

開発用に MySQL サーバーをいくつか用意しているが、気づいたら停止していた。MySQL が止まるなんて珍しいと思っていたら、システム全体がハングアップしていた。熱暴走の季節でもないのに不吉な感じだが、よく止まるマシンなのであまり気にせず再起動した。システムは正常に動作しているが、MySQL に接続できない。調べてみると、MySQL の待ち受けポートである 3306を Listen していない。自動起動の設定を忘れていたのだろうと思い、起動してみると・・・

[root@server ~]# /etc/init.d/mysqld start
Another MySQL daemon already running with the same unix socket.
mysqld を起動中:                                           [失敗]

失敗。念のため、start ではなく restart してみたが結果は同じ。エラーメッセージに従って、おとなしく調べることにした。まずは MySQL サーバーのログから。

[root@server ~]# tail /var/log/mysqld.log
131203  3:53:49 [Note] /usr/libexec/mysqld: Shutdown complete

131203 03:53:49 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
131203 03:53:51 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
131203  3:53:52  InnoDB: Initializing buffer pool, size = 8.0M
131203  3:53:52  InnoDB: Completed initialization of buffer pool
131203  3:53:52  InnoDB: Started; log sequence number 0 16039597
131203  3:53:52 [Note] Event Scheduler: Loaded 0 events
131203  3:53:52 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.71'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution

ん?
さっき再起動したはずなのに、昨日のログしか残っていない。どうやら、/var/lib/mysql/mysql.sock が残っているのが原因のようだ。

[root@server ~]# ls -al /var/lib/mysql/
合計 28720
drwxr-xr-x. 12 mysql mysql     4096 12月  3 03:53 2013 .
drwxr-xr-x. 21 root  root      4096  5月 28 14:41 2013 ..
...
srwxrwxrwx.  1 mysql mysql        0 12月  3 03:53 2013 mysql.sock
...

確かに残ってた。

ps で確認しても mysqld_safe はいないので、rm したところ MySQL があっさり起動。stop か restart すれば、init スクリプトが Unix ドメインソケットのファイルも削除してくれるものだと勝手に思い込んでいたので、少し調べるのに時間がかかった。あまり起きてほしくない事象だが、起きたときのために念のためにメモを残しておくことにした。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.