Ubuntu10.04 の mysql-server 5.1.41 です。
初期設定では /var/log/mysql/error.log に出力され、正常に動きました。my.cnf の設定を変え、/mnt/log/mysql/error.log に変更するとダメになります。
クラウド環境ですが、/mnt は Amazon でいうところの EBS みたいなものをマウントしています。
こういった場合、大抵パーミッションに問題があるということを過去の度重なる失敗から学んでいます。ですが、パーミッションの問題ではありません。
別のクラウド環境の同じOS、同じMySQLのバージョン、同じパーミッションでは動いているためです。
MySQLのログが出力されないため、/var/log/syslog を見たところ、以下の出力が確認できました。
Jan 14 18:23:35 test-mysql01 kernel: [ 2655.214479] type=1505 audit(1326536615.547:13): operation="profile_replace" pid=2187 name="/usr/sbin/mysqld"
Jan 14 18:23:35 test-mysql01 kernel: [ 2655.229151] type=1503 audit(1326536615.557:14): operation="open" pid=2191 parent=1 profile="/usr/sbin/mysqld" requested_mask="rac::" denied_mask="rac::" fsuid=109 ouid=109 name="/mnt/log/mysql/error.log"
こういうのがありました。
https://forums.ubuntulinux.jp/viewtopic.php?id=4488
AppArmorの関係かもと思って調べましたが、
http://ubulog.blogspot.com/2009/06/ubuntu-apparmor.html
http://kenmemo.blogspot.com/2011/01/apparmor-on-ubuntu.html
/var/log/messages に apparmor= を含むログが出力される。デフォルトでは、apparmorがブロックした操作(apparmor="DENIED")等が見られる。
とあるのでちょっと違うかも知れません。ただ、auditdとか、そういったセキュリティシステムの問題のような気がします。
コメント(1件)
Jan 14 19:01:19 test-mysql01 init: mysql post-start process (2898) terminated with status 1
Jan 14 19:01:19 test-mysql01 kernel: [ 4919.096299] type=1505 audit(1326538879.427:28): operation="profile_replace" pid=2963 name="/usr/sbin/mysqld"
Jan 14 19:01:19 test-mysql01 init: mysql main process (2967) terminated with status 1
Jan 14 19:01:19 test-mysql01 init: mysql main process ended, respawning
Jan 14 19:01:19 test-mysql01 kernel: [ 4919.114026] type=1503 audit(1326538879.447:29): operation="mknod" pid=2967 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=109 ouid=109 name="/mnt/log/error.log"
Jan 14 19:01:19 test-mysql01 kernel: [ 4919.114047] type=1503 audit(1326538879.447:30): operation="mknod" pid=2967 parent=1 profile="/usr/sbin/mysqld" requested_mask="c::" denied_mask="c::" fsuid=109 ouid=109 name="/mnt/log/mysql-bin.index"