MySQL OUTFILE 查询提示 "file already exists"但该文件根本不存在

标签 mysql linux

我正在编写一个非常简单的 shell 脚本来将表格转储到 CSV 文件中。这是其中的一部分:

day=`/bin/date +'%Y-%m-%d'`
file="/tmp/table-$day.csv"
rm $file
query="SELECT * FROM table INTO OUTFILE '$file' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\\n'"
echo "$query" | mysql <connection_parameters>

我放入 rm $file 以确保该文件在查询执行之前不存在。

但是,当我执行脚本时,我收到了相互冲突的消息:

rm: cannot remove `/tmp/table-2013-02-08.csv': No such file or directory
ERROR 1086 (HY000) at line 1: File '/tmp/table-2013-02-08.csv' already exists

我在机器的任何地方都找不到 OUTFILE。

那怎么了……?

谢谢。

最佳答案

我找到了答案。

OUTFILE 在 MySQL 服务器上创建文件,而不是在我的 MySQL 客户端机器上。

关于MySQL OUTFILE 查询提示 "file already exists"但该文件根本不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14762640/

相关文章:

mysql - 无法创建存储函数 - 语法错误?

php - 如何从 mysql 数据库中检索句子中用逗号分隔的所有值?

java - 我怎样才能检测到mysql的变化?

文件打开时检查 C 中文件指针的有效性

linux - 有效的 authorized_keys 文件?

c# - mono : Wrong Process. ProcessName 中错误的解决方法

mysql - 如何在mysql npm包中的查询中执行sql文件

php - AWS EC2实例创建数据库并上传页面

c - Linux 内核 : Static Const vs #Define

c++ - 测试C++代码的性能