我正在尝试使用以下查询从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)
(删除了用户名,但它是正确的用户名)
如何授予此用户访问权限以在服务器上创建文件?
编辑:
我将第一行更改为我的确切主路径,并收到同样的错误。
答案 0 :(得分:5)
FILE
权限允许您使用LOAD DATA INFILE
和SELECT ... INTO OUTFILE
语句以及LOAD_FILE()
函数在服务器主机上读取和写入文件。具有
FILE
权限的用户可以读取服务器主机上任何世界可读或MySQL服务器可读的文件。 (这意味着用户可以读取任何数据库目录中的任何文件,因为服务器可以访问任何这些文件。)FILE
权限还允许用户在MySQL服务器具有写访问权限的任何目录中创建新文件。作为安全措施,服务器不会覆盖现有文件。
要授予FILE
权限,请以root用户身份登录并执行:
GRANT FILE ON *.* TO 'your_user'@'localhost';