3

该文件肯定不存在,但无论如何我都会收到错误消息。

我愿意:

$ rm /tmp/records_materialized_view.txt;
$ mysql ... 

> SELECT * FROM records_materialized_view INTO OUTFILE '/tmp/records_materialized_view.txt';

ERROR 1086 (HY000): File '/tmp/records_materialized_view.txt' already exists
4

2 回答 2

4

SELECT INTO OUTFILE将结果写入服务器文件。

您是否正在检查服务器上的文件是否存在?

如果要选择到客户端计算机上的本地文件,只需重定向mysql输出:

mysql mydb < script.sql > /tmp/records_materialized_view.txt
于 2013-04-24T21:14:41.787 回答
1

当我遇到类似问题时遇到了这个答案。

我意识到SELECT INTO OUTFILE不会覆盖文件,您必须自己清理它们。所以下次写的时候会出现这个错误。不确定上述答案是什么意思,文件被写入服务器文件。

此外,SELECT INTO OUTFILE默认情况下会写入相对于您的 db 数据目录的文件。默认位置即

/var/lib/mysql/

因此,如果您检查您的 db 数据目录,您应该在那里找到您的文件。使用绝对路径来精确控制您希望文件结束的位置。这正是我所追求的,希望它可以帮助某人。干杯。

于 2016-04-28T06:46:54.847 回答