4

我正在尝试使用以下查询从 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)

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

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

编辑:

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

4

1 回答 1

6

您可能希望GRANT您的用户具有以下FILE权限:

FILE权限授予您使用LOAD DATA INFILEandSELECT ... INTO OUTFILE语句和LOAD_FILE()函数在服务器主机上读取和写入文件的权限。

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

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

GRANT FILE ON *.* TO 'your_user'@'localhost';
于 2010-08-07T18:18:37.003 回答