我不太明白如何使用 BASH 从 MySQL my_database
数据库中提取所有数据。理想情况下,我想逐行提取数据,并将其逐行打印到mydata.csv
文本文件中[带有IFS]。
我的困难是如何单独阅读这些行,并用内场分隔符","分隔每一列。
读完之后,我变得更加困惑:
- http://www.garron.me/en/bits/mysql-select-multiple-conditions.html
- bash 脚本 - 从数据库选择到变量中
- https://www.pantz.org/software/mysql/mysqlcommands.html
任何帮助都非常感谢!
到目前为止,我已经实现了
#!/bin/bash
myvariable=$(echo "SELECT * FROM cs_microrage_crm.stock_trans" | mysql -uUSER -pPASSWORD)
echo $myvariable
这会导致ERROR 1045 (28000):
你可以试试这个:
#!/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