Terima kasih Roland.
Jadi, jawaban untuk pertanyaan saya adalah "AppArmor".
Dari Wikipedia:
AppArmor memungkinkan administrator sistem untuk mengaitkan dengan setiap program profil keamanan yang membatasi kemampuan program itu. Ini melengkapi model kontrol akses diskresioner (DAC) Unix tradisional dengan menyediakan kontrol akses wajib (MAC).
Sejak Ubuntu Hardy, paket server MySQL 5.0 juga berisi file profil AppArmor (/etc/apparmor.d/usr.sbin.mysqld) yang membatasi fungsionalitas server MySQL, seperti memanggil UDF untuk menjalankan perintah.
Jadi, untuk membiarkan MySQL menjalankan perintah Linux, saya harus mengubah tingkat keamanan untuk MySql di dalam AppArmor.
[[email protected] ~]# aa-complain /usr/sbin/mysqld
Untuk melihat status AppArmor:
[[email protected] ~]# aa-status
Dengan konfigurasi ini, saya dapat mengeksekusi sys_eval dan sys_exec. Tapi itu masih terbatas pada direktori mysql. Jadi saya tidak dapat membuat file atau menjalankan skrip dari direktori mana pun.
Jadi solusinya adalah menambahkan izin ke apparmor untuk mysql untuk mengakses direktori data baru.
sudo vi /etc/apparmor.d/usr.sbin.mysqld
Tambahkan:
/newdir/ r,
/newdir/** rwk,
Mulai ulang server:
sudo /etc/init.d/apparmor restart
sudo /etc/init.d/mysql restart
Jika itu masih tidak berhasil, periksa izin nix untuk memastikan mysql adalah pemilik dan grup untuk direktori baru secara rekursif.
chown -R mysql:mysql “new datadir path”
Saya harap itu membantu seseorang.
Abid