De quelle version particulière d'Ubuntu s'agit-il et s'agit-il d'Ubuntu Server Edition ?
Les éditions récentes d'Ubuntu Server (telles que 10.04) livrées avec AppArmor et le profil de MySQL peuvent être en mode d'application par défaut. Vous pouvez vérifier cela en exécutant sudo aa-status
comme ça :
# 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.
Si mysqld est inclus dans le mode d'application, alors c'est probablement celui qui refuse l'écriture. Les entrées seraient également écrites dans /var/log/messages
lorsque AppArmor bloque les écritures/accès. Ce que vous pouvez faire est de modifier /etc/apparmor.d/usr.sbin.mysqld
et ajoutez /data/
et /data/*
vers le bas comme ceci :
...
/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,**
}
Et ensuite, faites en sorte qu'AppArmor recharge les profils.
# sudo /etc/init.d/apparmor reload
ATTENTION :la modification ci-dessus permettra à MySQL de lire et d'écrire dans le répertoire /data. Nous espérons que vous avez déjà pris en compte les implications de sécurité de cela.