bashスクリプトを使用して、MYSQLビューからの出力をCSVにダンプしようとしています。
インスピレーションとして、私はこの投稿を使用しました:mysqlテーブルに書き込むためにbashスクリプトを使用する方法
奇妙な部分は、SELECT column1、column2、column3 FROM構文は正常に機能することですが、15列ほどある場合は実用的ではありません...
SELECT count(*)FROMも機能します
ただし、SELECT*FROMはMYSQL構文エラーをスローします
#!/bin/bash
fpath=/tmp/
fname=`date +%Y%m%d-%H%M%S`.csv
savedest=\'$fpath$fname\'
echo "Saving into"$savedest
params="-u root -p mydb"
s1="SELECT * FROM flat_view INTO OUTFILE "
s2=" FIELDS TERMINATED BY ','"
s3=" ENCLOSED BY '\"'"
s4=" LINES TERMINATED BY '\\n'"
selectend=";"
echo $s1$savedest$s2$s3$s4$selectend | mysql $params
何かをきちんと逃げていないと思っています。
PS。これはCentos5.8およびmysqlVer14.12Distrib5.0.95です。