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

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

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

首先你必须定义你的数据库是什么:

use database_name;

然后您就可以运行查询。

如果仍然不起作用,那是因为您创建了它们,但尚未为给定用户定义对它的访问权限。

GRANT ALL ON database_name.* TO 'someuser'@'somehost';

您可以在以下网址阅读有关 Grant 使用的更多信息http://dev.mysql.com/doc/refman/5.1/en/grant.html

答案2

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

该错误与文件或目录权限无关。这是 MySQL 告诉您,您使用的 MySQL 登录凭据对于该查询不正确。这可能是因为,正如 Prix 指出的那样,您没有指定要使用的数据库。

答案3

我花了几个小时试图理解这个页面和 StackOverflow 的许多其他页面上的建议。

无论我如何更改 MySql 中的权限,都无法使任何东西正常工作。

我恢复到了我开始时的权限。

最终对我有用的方法比其他人的建议更简单:

echo "select id, emailAddress FROM contacts" | mysql --user=myusername --password mydatabasename > /home/my_output_file.tsv

相关内容