授予数据库用户文件夹访问

时间:2010-08-07 18:13:45

标签: mysql privileges mysql-error-1045

我正在尝试使用以下查询从mysql创建csv数据导出:

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)

(删除了用户名,但它是正确的用户名)

如何授予此用户访问权限以在服务器上创建文件?

编辑:

我将第一行更改为我的确切主路径,并收到同样的错误。

1 个答案:

答案 0 :(得分:5)

您可能希望GRANT您的用户获得FILE权限:

  

FILE权限允许您使用LOAD DATA INFILESELECT ... INTO OUTFILE语句以及LOAD_FILE()函数在服务器主机上读取和写入文件。

     

具有FILE权限的用户可以读取服务器主机上任何世界可读或MySQL服务器可读的文件。 (这意味着用户可以读取任何数据库目录中的任何文件,因为服务器可以访问任何这些文件。)FILE权限还允许用户在MySQL服务器具有写访问权限的任何目录中创建新文件。作为安全措施,服务器不会覆盖现有文件。

要授予FILE权限,请以root用户身份登录并执行:

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