Поскольку cP / WHM лишил возможности изменять привилегии пользователя как root в PHPMyAdmin, вы должны использовать командную строку для:
mysql> GRANT FILE ON *.* TO 'user'@'localhost';
Шаг 2 - разрешить этому пользователю выгружать файл в определенную папку. Есть несколько способов сделать это, но я положил папку:
/home/user/tmp/db
и
chown mysql:mysql /home/user/tmp/db
Это позволяет пользователю mysql записать файл. Как говорилось в предыдущих постерах, вы можете также использовать временную папку MySQL, я не думаю, что это действительно имеет значение, но вы определенно не хотите делать это с разрешением 0777 (доступным для записи), если вы не хотите, чтобы мир видел ваши данные. Существует потенциальная проблема, если вы хотите промыть-повторить процесс, так как INTO OUTFILE
не будет работать, если файл существует. Если ваши файлы принадлежат другому пользователю, то попытка unlink($file)
не сработает. Если вы похожи на меня (параноик 0777), тогда вы можете установить целевой каталог с помощью:
chmod($dir,0777)
непосредственно перед выполнением команды SQL, затем
chmod($dir,0755)
сразу после, затем unlink(file)
для удаления файла. Все это работает под вашим веб-пользователем, и вам не нужно вызывать пользователя mysql.