MySQL не может записать в файл, разрешение запрещено. (Ошибка 13) - PullRequest
0 голосов
/ 10 марта 2011

У меня есть веб-приложение, которое выполняет запросы к базе данных.Приложение пытается выполнить запрос и отправить результаты в выходной файл.Я подтвердил, что проблема на самом деле связана с отказом в разрешении (ошибка 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.Веб-сервер, на котором запущено приложение, - Apache 2. Я не могу создать файл заранее и не могу изменить каталог, в который программа пытается записать.

1 Ответ

1 голос
/ 30 марта 2011

Я бы рискнул предположить, что проблема с SELinux.

Первое, что я бы попробовал, было бы setenforce 0 и посмотреть, исправит ли это. Это только исправит симптомы (вам все еще нужно перенастроить SELinux, чтобы разрешить то, что вам нужно), но оно по крайней мере подтвердит, является ли это проблемой или нет.

...