【Ubuntu 12.04】AppArmor 令 MySQL 不能啟動

上星期把 netbook 的 Ubuntu 升級到 12.04 後,發現不能啟動 MySQL server,然後在 /var/log/syslog 內發現以下一行 log。

Sep 11 16:01:36 potter kernel: [ 2463.153201] type=1400 audit(1347350496.093:36): apparmor=”DENIED” operation=”mknod” parent=6583 profile=”/usr/sbin/mysqld” name=”/run/mysqld/mysqld.sock” pid=6622 comm=”mysqld” requested_mask=”c” denied_mask=”c” fsuid=114 ouid=114

在網上看過這篇文章後,只需在 /etc/apparmor.d/usr.sbin.mysqld 內,把以下 mysqld 相關兩行修改 (或直接加入),便能修正問題。

/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,

改為:

/run/mysqld/mysqld.pid w,
/run/mysqld/mysqld.sock w,

最後只需 sudo service mysql restart 重新啟動便可。如果不能,可以執行 sudo service apparmor restart 然後再試。