Vilken speciell version av Ubuntu är detta och är denna Ubuntu Server Edition?
Nya Ubuntu Server Editions (som 10.04) levereras med AppArmor och MySQL:s profil kan vara i upprätthållande läge som standard. Du kan kontrollera detta genom att köra sudo aa-status
som så:
# 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.
Om mysqld är inkluderat i enforce-läge är det förmodligen den som nekar skrivningen. Inlägg skulle också skrivas i /var/log/messages
när AppArmor blockerar skrivningar/åtkomster. Det du kan göra är att redigera /etc/apparmor.d/usr.sbin.mysqld
och lägg till /data/
och /data/*
nära botten som så:
...
/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,**
}
Och gör sedan att AppArmor laddar om profilerna.
# sudo /etc/init.d/apparmor reload
VARNING:ändringen ovan tillåter MySQL att läsa och skriva till /data-katalogen. Vi hoppas att du redan har övervägt säkerhetskonsekvenserna av detta.