धन्यवाद रोलैंड।
तो, मेरे प्रश्न का उत्तर "AppArmor" है।
विकिपीडिया से:
AppArmor सिस्टम व्यवस्थापक को प्रत्येक प्रोग्राम के साथ एक सुरक्षा प्रोफ़ाइल संबद्ध करने की अनुमति देता है जो उस प्रोग्राम की क्षमताओं को प्रतिबंधित करता है। यह अनिवार्य अभिगम नियंत्रण (मैक) प्रदान करके पारंपरिक यूनिक्स विवेकाधीन अभिगम नियंत्रण (डीएसी) मॉडल का पूरक है।
चूंकि उबंटू हार्डी MySQL 5.0 सर्वर पैकेज में एक AppArmor प्रोफ़ाइल फ़ाइल (/etc/apparmor.d/usr.sbin.mysqld) भी शामिल है, जो MySQL सर्वर की कार्यक्षमता को सीमित करती है, जैसे कमांड को निष्पादित करने के लिए UDF को कॉल करना।
इसलिए, MySQL को Linux कमांड चलाने देने के लिए, मुझे AppArmor के अंदर MySql के सुरक्षा स्तर को बदलना चाहिए।
[[email protected] ~]# aa-complain /usr/sbin/mysqld
AppArmor की स्थिति देखने के लिए:
[[email protected] ~]# aa-status
इस संयोजन के साथ, मैं sys_eval और sys_exec को उत्साहित कर सकता हूं। लेकिन वह अभी भी mysql निर्देशिका तक ही सीमित है। इसलिए मैं फ़ाइल नहीं बना सकता या किसी निर्देशिका से स्क्रिप्ट नहीं चला सकता।
तो समाधान नई डेटा निर्देशिकाओं तक पहुँचने के लिए mysql के लिए एपर्मर में अनुमतियाँ जोड़ना है।
sudo vi /etc/apparmor.d/usr.sbin.mysqld
जोड़ें:
/newdir/ r,
/newdir/** rwk,
सर्वर को पुनरारंभ करें:
sudo /etc/init.d/apparmor restart
sudo /etc/init.d/mysql restart
यदि वह अभी भी काम नहीं करता है, तो यह सुनिश्चित करने के लिए निक्स अनुमतियों की जांच करें कि mysql नई निर्देशिका के लिए मालिक और समूह है।
chown -R mysql:mysql “new datadir path”
मुझे आशा है कि इससे किसी को मदद मिली होगी।
आबिद