如何使用BASH从MySQL数据库中逐行提取数据

时间:2015-04-15 00:49:30

标签: php mysql bash

我不太明白如何使用BASH从MySQL my_database database中提取所有数据。理想情况下,我想逐行提取data,并逐行将其打印到mydata.csv文本文件中[使用IFS]。

我的难点在于如何单独阅读这些行,并用内场分隔符“,”分隔每一列。

在做了一些阅读后,我变得更加困惑:

非常感谢任何帮助!

我到目前为止已经实施了

#!/bin/bash

myvariable=$(echo "SELECT * FROM cs_microrage_crm.stock_trans" | mysql -uUSER -pPASSWORD)

echo $myvariable 

结果为ERROR 1045 (28000):

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

#!/bin/bash
dbName=foo;
sourseSet=$(mysql -uroot -pmysql -e "use $dbName; show tables;")
tableSet=$(echo $sourceSet | sed "s/Tables_in_$dbName //g")

for tb in $tableSet
do
    mysql -uroot -pmysql -e "use $dbName;\
    select * into outfile '/tmp/${tb}.csv'"\
    fields terminated by ','\
    lines ternimated by '\n'\
    from $tb"\
done