从mysql创建的文件删除

15

我在MySQL中执行了查询:

select * into outfile "/tmp/results.out" from table_x;

接着,它将该表中的所有记录写入/tmp目录中的文件。该文件是使用以下权限创建的。

-rw-rw-rw- 1 mysql mysql 6.6K Nov 14 10:14 /tmp/results.out

我知道无法从我的登录中删除此文件。但我尝试从MySQL中删除,但是出现以下错误消息:

mysql> system rm /tmp/results.out
rm: cannot remove `/tmp/results.out': Operation not permitted

PS:我没有root权限。


你试过使用你的mysql管理员用户吗? - Yogendra Singh
我不太懂这个,但是你能获取一些授权吗?比如,GRANT ALL PRIVILEGES ON whatever ... - Sylca
请在问题中添加Unix标签,这可能会吸引活跃的Unix用户,他们可能对此问题有很好的想法。 - Rishabh Sagar
你是否尝试使用SFTP登录,如果你的主机允许的话?我曾经遇到过类似的MySQL备份文件问题,但是SFTP可以授予你更高的权限(取决于你所在的主机)。 - tim.baker
2个回答

1
文件的所有者组是mysql。请使用id命令查找该组的另一个用户并尝试删除它。看起来您用于删除文件的用户ID可能没有/tmp目录的写访问权限。
您能够截断文件的内容吗?只有在您不想在/tmp/中保留results.out文件时,请执行此操作。
echo " " > /tmp/results.out

-1
您可以始终以与创建文件相同的方式用一些小而无害的东西覆盖该文件。
在Unix系统上,重启时清除/tmp/*是常见做法,因此它也不会永远留在那里。

你可以直接用一个小而无害的文件覆盖掉已经存在的文件,就像你创建文件时所做的那样。错误 1086 (HY000):文件 '/tmp/example.txt' 已经存在。 - Alec Matusis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接