Quale versione particolare di Ubuntu è questa ed è questa Ubuntu Server Edition?
Le recenti edizioni di Ubuntu Server (come 10.04) vengono fornite con AppArmor e il profilo di MySQL potrebbe essere in modalità di applicazione per impostazione predefinita. Puoi verificarlo eseguendo sudo aa-status
così:
# 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.
Se mysqld è incluso in modalità force, probabilmente è quello che nega la scrittura. Le voci sarebbero anche scritte in /var/log/messages
quando AppArmor blocca le scritture/gli accessi. Quello che puoi fare è modificare /etc/apparmor.d/usr.sbin.mysqld
e aggiungi /data/
e /data/*
vicino al fondo in questo modo:
...
/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,**
}
E poi fai in modo che AppArmor ricarichi i profili.
# sudo /etc/init.d/apparmor reload
ATTENZIONE:la modifica sopra consentirà a MySQL di leggere e scrivere nella directory /data. Ci auguriamo che tu abbia già considerato le implicazioni sulla sicurezza di questo.