
我需要在 MySql 伺服器中匯出大約 20 個資料庫,其中包含大約 100 個不同的資料庫,是否可以使用控制台命令將資料庫名稱清單匯出到單獨的檔案中? (當然是在Linux下)。
答案1
echo "show databases" | mysql -N | while read db
do
mysqldump ${db} > ${db}.sql
done
您可以使用grep
刪除不需要的資料庫,例如mysql
和information_schema
答案2
建立一個文字文件,其中包含要備份的每個資料庫的名稱,並在其自己的行上
例如
db1
reports
然後使用這樣的腳本
#!/bin/bash
ERRORS=0
while read db
do
echo "Processing $db"
mysqldump -u root -p365576dx "$db" >"$db".sql
EXITSTATUS=$?
if [ "$ERRORS" -eq "0" -a "$EXITSTATUS" -ne "0" ]
then
ERRORS="$EXITSTATUS"
fi
done<dbstodump
if [ "$ERRORS" -ne "0" ]
then
echo "Errors occurred see above for details"
exit 1
fi
答案3
最簡單的解決方案是在命令列上使用一個簡單的 for 迴圈。在我的範例中,我想匯出資料庫cars
、animals
和computers
。
for db in cars animals computers ; do mysqldump -uuser -ppassword "$db" > "$db.sql" ; done