apparmor 引起自定义mysql 日志问题
今天手贱,看到mysql 的日志在/var/log/mysql下面。总是觉得别扭,于是就想改变日志的位置,
本人开发环境 vagrant + ubuntu12.04 ,在/etc/mysql/mysql中修改了general_log的位置,放在/data/logs/mysql下面
然后重启服务,service mysql restart
查看错误日志发现说
/usr/sbin/mysqld: File '/data/logs/mysql/mysql.log' not found (Errcode: 13)
150830 0:02:44 [ERROR] Could not use /data/logs/mysql/mysql.log for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.
猜测是权限问题,最后都给了777 也还是搞不定,在万能的google的帮助下找到了答案
As usual, the solution was simple but not obvious: it needed to edit apparmor settings I just added to /etc/apparmor.d/usr.sbin.mysqld a new string with path to target directory: /home/developer/logs/* rw
It works!
估计很多人会问 apparmor 是干什么的,请查看文章:Ubuntu apparmor何方神圣