Grazie Roland.
Quindi, la risposta alla mia domanda è "AppArmor".
Da Wikipedia:
AppArmor consente all'amministratore di sistema di associare a ciascun programma un profilo di sicurezza che limita le capacità di quel programma. Integra il tradizionale modello di controllo dell'accesso discrezionale (DAC) di Unix fornendo il controllo dell'accesso obbligatorio (MAC).
Da Ubuntu Hardy il pacchetto del server MySQL 5.0 contiene anche un file di profilo AppArmor (/etc/apparmor.d/usr.sbin.mysqld) che limita le funzionalità del server MySQL, come chiamare un UDF per eseguire comandi.
Quindi, per consentire a MySQL di eseguire comandi Linux, dovrei cambiare il livello di sicurezza per MySql all'interno di AppArmor.
[[email protected] ~]# aa-complain /usr/sbin/mysqld
Per dare un'occhiata allo stato di AppArmor:
[[email protected] ~]# aa-status
Con questa configurazione, posso eseguire sys_eval e sys_exec. Ma questo è ancora limitato alla directory mysql. Quindi non posso creare file o eseguire uno script da nessuna directory.
Quindi la soluzione è aggiungere i permessi ad apparmor affinché mysql acceda alle nuove directory di dati.
sudo vi /etc/apparmor.d/usr.sbin.mysqld
Aggiungi:
/newdir/ r,
/newdir/** rwk,
Riavvia i server:
sudo /etc/init.d/apparmor restart
sudo /etc/init.d/mysql restart
Se ancora non funziona, controlla le autorizzazioni nix per assicurarti che mysql sia proprietario e gruppo per la nuova directory in modo ricorsivo.
chown -R mysql:mysql “new datadir path”
Spero che questo aiuti qualcuno.
Rispettare