![mysql UDF:fopen = 权限被拒绝](https://linux22.com/image/514559/mysql%20UDF%EF%BC%9Afopen%20%3D%20%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D.png)
这是问题我已经问过了但我想知道这是否是系统管理员的问题。
我正在尝试创建一个mysql UDF 函数,此函数调用“fopen/fclose”来读取存储在中的平面文件/data
。但是使用 errno(是的,我知道这在 MT 程序中很糟糕......)我可以看到该函数无法打开我的文件:
"Permission denied"
我尝试做了
chmod -R 755 /data (as well as 777, chown -R mysql:mysql /data etc...)
但它并没有改变任何事情。
当我将平面文件复制到 /tmp 时:OK,我的 UDF 能够“打开”该文件。我感到很困惑。
目前,我有:
drwxrwxrwx 4 pierre root 4096 2010-05-26 16:51 /data
drwxrwxrwx 3 pierre root 4096 2010-05-18 09:41 /data/dir1
drwxrwxrwx 3 pierre root 4096 2010-05-18 09:41 /data/dir1/dir2
drwxrwxrwx 4 pierre root 4096 2010-05-18 10:27 /data/dir1/dir2/dir3
-rw-r--r-- 1 pierre root 50685268 2005-12-10 00:01 /data/dir1/dir2/dir3/myfile.txt
任何想法 ?
答案1
mysqld 受到保护装甲。
AppArmor 是解决限制已安装软件可以采取的操作问题的几种可能方法之一。
我补充道
/data/** r,
在......的最后
/etc/apparmor.d/usr.sbin.mysqld
apparmor 已重新启动:
/etc/init.d/apparmor restart
现在我的 UDF 工作正常!:-)