2012-09-07 208 views
0

我想打印查询结果从MySQL(SELECT blah INTO OUTFILE 'filename')文件,但我发现了以下错误消息:MySQL的访问被拒绝

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

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

起初,我想我只是没有这个命令的权限(我已经完全在MySQL中创建/删除权限这个特殊的数据库,但不是root访问服务器上),而是寻找到的错误,我发现迹象当用户名&密码未正确传递到服务器时发生此错误。我从服务器上的MySQL控制台运行它,所以我不认为这将是这种情况,但MySQL用户名与服务器登录不同,这可能是问题吗?

这是我可以自己照顾的事情吗?还是我需要将其链接给具有更多权限的人(在MySQL和/或服务器上)?

背景:我需要清除表中1000+条目的1/4以及与每个条目相关的文件。不幸的是,所有文件都在同一个文件夹中,并使用散列作为文件名,所以虽然我可以使用范围轻松地从表中获取所需的行,但这对文件无效。我想在清除不需要的行之前从表中获取文件名,以便我可以使用shell脚本删除关联的文件。

回答

1

按照manual,你必须有FILE权限和访问服务器主机。

SELECTSELECT ... INTO OUTFILE'文件名'格式将所选行写入文件。该文件在服务器主机上创建,因此您必须具有FILE特权才能使用此语法

1

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