Bash脚本将mysql视图转储到csv中

时间:2012-11-28 15:22:44

标签: mysql bash scripting centos

我正在尝试使用bash脚本将输出从MYSQL视图转储为CSV。

作为灵感,我使用了这篇文章:How to use a bash script to write to a mysql table

奇怪的是,SELECT column1,column2,column3 FROM语法工作正常,但是当你有15列时这是不切实际的......

SELECT count(*)FROM works

然而,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。这是Centos 5.8和mysql Ver 14.12 Distrib 5.0.95

1 个答案:

答案 0 :(得分:0)

在输入问题时,我决定再尝试一下笑声:

s1="SELECT flat_view.* FROM flat_view INTO OUTFILE "

它有效!

我发现了一个可能含糊不清的SELECT *读取MySQL文档:http://dev.mysql.com/doc/refman/5.5/en/select.html

但奇怪的是,SELECT * FROM在mysql命令行中工作正常,但不是来自bash脚本。