Предоставить доступ к папке пользователя базы данных - PullRequest
3 голосов
/ 07 августа 2010

Я пытаюсь создать csv-экспорт данных из mysql, используя следующий запрос:

SELECT * INTO OUTFILE '/tmp/result.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM getfreepellets WHERE 1

И я получаю следующую ошибку:

#1045 - Access denied for user '[username]'@'localhost' (using password: YES)

(удалено имя пользователя, но оно правильное)

Как бы я предоставил этому пользователю доступ для создания файла на сервере?

Edit:

Я изменил первую строку на мой точный домашний путь и получил ту же ошибку.

1 Ответ

5 голосов
/ 07 августа 2010

Возможно, вы захотите GRANT вашему пользователю привилегию FILE:

Привилегия FILE дает вам разрешение на чтение изаписывать файлы на хост сервера с помощью операторов LOAD DATA INFILE и SELECT ... INTO OUTFILE и функции LOAD_FILE().

Пользователь с привилегией FILE может прочитать любой файл на хосте сервера любого мира.-читаемый или читаемый сервером MySQL.(Это означает, что пользователь может прочитать любой файл в любом каталоге базы данных, поскольку сервер может получить доступ к любому из этих файлов.) Привилегия FILE также позволяет пользователю создавать новые файлы в любом каталоге, где сервер MySQL имеет доступ для записи.В качестве меры безопасности сервер не будет перезаписывать существующие файлы.

Чтобы предоставить привилегию FILE, войдите в систему как пользователь root и выполните:

GRANT FILE ON *.* TO 'your_user'@'localhost';
...