Która to konkretna wersja Ubuntu i czy jest to Ubuntu Server Edition?
Najnowsze wersje Ubuntu Server (takie jak 10.04) są dostarczane z AppArmor i profilem MySQL domyślnie w trybie wymuszania. Możesz to sprawdzić, wykonując sudo aa-status
tak:
# 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.
Jeśli mysqld jest włączony w tryb wymuszania, to prawdopodobnie odmawia zapisu. Wpisy byłyby również zapisywane w /var/log/messages
gdy AppArmor blokuje zapisy/dostępy. Możesz edytować /etc/apparmor.d/usr.sbin.mysqld
i dodaj /data/
i /data/*
u dołu tak:
...
/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,**
}
A następnie spraw, aby AppArmor ponownie załadował profile.
# sudo /etc/init.d/apparmor reload
UWAGA:powyższa zmiana pozwoli MySQL na odczytywanie i zapisywanie w katalogu /data. Mamy nadzieję, że już rozważyłeś konsekwencje tego dla bezpieczeństwa.