我正在尝试使用以下查询从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)
(已删除用户名,但这是正确的用户名)
我将如何授予该用户访问权限以在服务器上创建文件?
编辑:
我将第一行更改为确切的原始路径,并收到了相同的错误.
解决方法:
The
FILE
privilege gives you permission to read and write files on the server host using theLOAD DATA INFILE
andSELECT ... INTO OUTFILE
statements and theLOAD_FILE()
function.A user who has the
FILE
privilege can read any file on the server host that is either world-readable or readable by the MySQL server. (This implies the user can read any file in any database directory, because the server can access any of those files.) TheFILE
privilege also enables the user to create new files in any directory where the MySQL server has write access. As a security measure, the server will not overwrite existing files.
要授予FILE特权,请以root用户身份登录并执行:
GRANT FILE ON *.* TO 'your_user'@'localhost';