利用Shell將MySQL數據表導出爲csv文件

完整的Shell代碼以下:mysql

#!/bin/bash
MYSQL=`which mysql`

#show databases in mysql
echo "database in mysql:"
echo "*******************"
$MYSQL -u root -p****** << EOF
show databases;
EOF
echo "*******************"
#choose a database 
read -t 60 -p "choose a database:" database

#show tables in the database
echo "tables in $database"
echo "*******************"
$MYSQL -u root -p****** << EOF
use $database
show tables;
EOF
echo "*******************"

#choose a table
read -t 60 -p "choose a table:" table

statement="use $database;select * from $table;"

#write the table into 1.log file
$MYSQL -u root -p****** >1.log << EOF
$statement
EOF

echo "Downloading $table from $database in mysql..."
sleep 1
echo "now converting it to csv file..."
sleep 1

#cat the 1.log file and convert it to csv file
cat 1.log | while read line
do
echo $line | tr " " ","
done > $database"_"$table.csv

sleep 1
#remove the temporal file 1.log
rm -rf 1.log

#echo the infomation
echo "Convert $table into $database"_"$table.csv."
sleep 1
echo "Done successfully!Please check the file!"

其中$MYSQL -u root -p******的「******」爲mysql登錄密碼。
操做以下:
這裏寫圖片描述
去文檔中查看文件是否存在:
這裏寫圖片描述
文件裏面內容以下:
這裏寫圖片描述
Bingo,操做成功!
web

本次分享到此結束,歡迎你們批評與交流~~