7

テーブルを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 に答える