【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 然後再試。

About Sammy Fung

Sammy Fung 是開放源碼倡導者,Python Software Foundation Fellow,創辦 Open Source Hong Kong、香港開源年會及 PyCon HK,曾任 GNOME Foundation 董事,現為開發者關係專家,致力推廣開源軟件、開放數據與開源 AI。