2011-03-10 878 views
0

我有一個Web應用程序在數據庫上運行查詢。應用程序試圖運行查詢,並將結果發送到輸出文件。我已確認該問題實際上是一個拒絕的權限(錯誤13)問題,而不是查詢的任何其他部分的問題。查詢的簡化形式如下:MySQL無法寫入文件,權限被拒絕。 (錯誤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

嗨 - 我認爲這可能是重複的http://stackoverflow.com/questions/2783313/how-can-i-get-around-mysql-errcode-13-with-select-into-outfile – oskarpearson 2011-03-10 18:41:09

回答

1

我會冒險猜測問題出在SELinux上。

我想嘗試的第一件事就是setenforce 0,看看是否修復它。它只會修復這些症狀(您仍然需要重新配置SELinux以允許您需要),但它至少會確認問題是否存在。

+0

事實上,問題在於SELinux。只要我把它關掉,沒有問題。 – 2011-04-01 19:16:48

相關問題