7

我正在编写一个非常简单的 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。

那么有什么问题..?

谢谢你。

4

2 回答 2

9

我找到了答案。

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

于 2013-02-07T23:37:52.303 回答
0

检查你是否在 /etc/passwd 中有这个

mysql:x:27:27:MariaDB 服务器:/var/lib/mysql:/sbin/nologin

将 shell 更改为 /bin/bash

于 2016-11-25T04:34:51.497 回答