我正在编写一个非常简单的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。
那有什么不对..?
谢谢。
答案 0 :(得分:9)
我找到了答案。
OUTFILE在MySQL服务器上创建文件,而不是在MySQL客户端的机器上创建文件。
答案 1 :(得分:0)
检查/ etc / passwd
中是否包含此内容mysql:x:27:27:MariaDB服务器:/ var / lib / mysql:/ sbin / nologin
将shell更改为/ bin / bash