如何透過一條指令導出一定數量的MySql資料庫

如何透過一條指令導出一定數量的MySql資料庫

我需要在 MySql 伺服器中匯出大約 20 個資料庫,其中包含大約 100 個不同的資料庫,是否可以使用控制台命令將資料庫名稱清單匯出到單獨的檔案中? (當然是在Linux下)。

答案1

echo "show databases" | mysql -N | while read db
do
  mysqldump ${db} > ${db}.sql
done

您可以使用grep刪除不需要的資料庫,例如mysqlinformation_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 迴圈。在我的範例中,我想匯出資料庫carsanimalscomputers

for db in cars animals computers ; do mysqldump -uuser -ppassword "$db" > "$db.sql" ; done

相關內容