小编典典
这是哪个特定的Ubuntu版本,并且这是Ubuntu Server Edition?
AppArmor随附了最新的Ubuntu Server
Edition(例如10.04),默认情况下MySQL的配置文件可能处于强制模式。您可以这样执行检查sudo aa-status:
# sudo aa-status
5 profiles are loaded.
5 profiles are in enforce mode.
/usr/lib/connman/scripts/dhclient-script
/sbin/dhclient3
/usr/sbin/tcpdump
/usr/lib/NetworkManager/nm-dhcp-client.action
/usr/sbin/mysqld
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode :
/usr/sbin/mysqld (1089)
0 processes are in complain mode.
如果mysqld包含在强制模式下,则可能是拒绝写入的程序。/var/log/messages当AppArmor阻止写入/访问时,也将写入条目。您可以做的就是编辑/etc/apparmor.d/usr.sbin.mysqld并添加/data/并/data/*靠近底部,如下所示:
...
/usr/sbin/mysqld {
...
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
**/data/ r,
/data/* rw,**
}
然后使AppArmor重新加载配置文件。
# sudo /etc/init.d/apparmor reload
警告:以上更改将使MySQL可以读写/ data目录。我们希望您已经考虑了此问题的安全性。
2020-05-17