0

我正在尝试从 MySQL ( SELECT blah INTO OUTFILE 'filename') 将查询结果打印到文件,但我收到以下错误消息:

ERROR 1045 (28000): Access denied for user 'mysql_username'@'localhost' (using password: YES)

当我只选择屏幕上的信息时它工作正常;它正在添加INTO OUTFILE使它给我错误的部分。

起初我认为我只是没有此命令的权限(我在 mySQL 中对此特定数据库具有完全创建/删除权限,但在服务器上没有 root 访问权限),但查看错误我发现表明此错误发生的迹象当用户名和密码没有正确传递到服务器时。我从服务器上的 MySQL 控制台运行它,所以我认为不会是这种情况,但是 MySQL 用户名与服务器登录名不同,这可能是问题吗?

这是我可以自己处理的事情,还是我需要将它踢给拥有更多权利的人(在 MySQL 和/或服务器上)?

背景:我需要清除表中 1000 多个条目中的大约 1/4,以及与每个条目关联的文件。不幸的是,所有文件都在同一个文件夹中,并使用哈希作为文件名,因此虽然我可以使用范围轻松地从表中获取我想要的行,但这不适用于文件。我想在清除不需要的行之前从表中取出文件名,以便可以使用 shell 脚本删除关联的文件。

4

2 回答 2

1

您的用户帐户需要FILE特权。

于 2012-09-07T18:23:17.657 回答
1

根据手册,您必须具有FILE对服务器主机的权限和访问权限。

SELECT ... INTO OUTFILE'file_name' 形式将SELECT选定的行写入文件。该文件是在服务器主机上创建的,因此您必须有权FILE使用此语法

于 2012-09-07T18:23:59.247 回答