mysql-error#2002の対策とエラーログの場所

昨日でていたphpmyadminでの。#2002 - Can't connect to local MySQL server through socket '/tmp/mysql.sock'というエラーはやっぱりmysqlの再起動で直った。でも、なんでmysqlが落ちたのかよくわからない。


エラーログを見ようと思ったのだが、エラーログがない。my.cnfを見てエラーログの場所を確認したが明示していないので、そういう時はデフォルトでdatadirの場所にhost_name.errというファイルができるそうなのだが、発見できない。/var/lib/mysql/data/の中にない。var/log/mysql.errというファイルがあったが、見てみると空っぽ。my.cnfファイルでは、errorlog goes to syslog … debianみたいなコメントがあったので、var/log/syslogも確認するが、エラーログ的なものは記録されていない。特にエラーログをとらない設定にしたわけではないのにおかしい。一応--syslogオプションをつけると、Linuxでは/var/log/messageにエラーログが記録されるという記事もあったので、確認したけどやっぱりなかった。


仕方ないので、my.cnfにエラーログファイルの記録場所を明示的に指定する。


[mysqld_safe]
log-error = /var/log/mysql.err
調べていたときに、[mysqld]に書いているものもあったのだけど、どっちが正しいのだろうか。[mysqld_safe]に書くと、イメージ的には起動失敗などのエラーログだけで、普通のクエリのエラーログが記録されないのかなどと思ってみたり。それはそれでまずいか。この際、両方に書いてやりたいが、それはそれで不具合起こしそう。