Коя конкретна версия на Ubuntu е това и това Ubuntu Server Edition ли е?
Последните издания на Ubuntu Server (като 10.04) се доставят с AppArmor и профилът на 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. Надяваме се, че вече сте обмислили последствията за сигурността от това.