我有一个在数据库上运行查询的Web应用程序。应用程序正在尝试运行查询,并将结果发送到输出文件。我已经确认该问题实际上是一个权限被拒绝(错误13)问题,而不是查询的任何其他部分的问题。查询的简化形式如下:
SELECT 'anything'
INTO OUTFILE '/var/www/html/sl/filestore/dbadpt_database.tmp'
FROM INFORMATION_SCHEMA.TABLES;
当我删除INTO OUTFILE
行时,此查询运行正常。我已经尝试了我能想到的这个目录的每个权限设置。我甚至将权限更改为777,并得到了相同的结果。 (是的,我知道777不安全。只是做了测试)我已经尝试了'root','apache'和'mysql'的所有所有权组合,我可以考虑尝试这个目录。我已将上述查询粘贴到MySQL命令行工具中,并产生了相同的结果。
我们正在运行CentOS 5.5。运行应用程序的Web服务器是Apache 2.我无法提前创建文件,也无法更改程序尝试写入的目录。
答案 0 :(得分:1)
我猜测SELinux存在问题。
我会尝试的第一件事是setenforce 0
,看看是否修复了它。它只会修复症状(您仍然需要重新配置SELinux以满足您的需要),但它至少会确认这是否是问题。