So exportieren Sie eine bestimmte Anzahl von MySql-Datenbanken mit einem Befehl

So exportieren Sie eine bestimmte Anzahl von MySql-Datenbanken mit einem Befehl

Ich muss ungefähr 20 Datenbanken in einem MySql-Server exportieren, der ungefähr 100 verschiedene Datenbanken enthält. Ist es möglich, eine Liste von Datenbanknamen mit einem Konsolenbefehl in separate Dateien zu exportieren? (unter Linux natürlich).

Antwort1

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

Sie können verwenden, grepum unerwünschte Datenbanken wie mysqlund zu entferneninformation_schema

Antwort2

Erstellen Sie eine Textdatei mit dem Namen jeder Datenbank, die Sie sichern möchten, in einer eigenen Zeile

z.B

db1
reports

Verwenden Sie dann ein Skript wie dieses

#!/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

Antwort3

Die einfachste Lösung wäre eine einfache For-Schleife direkt in der Befehlszeile. In meinen Beispielen möchte ich die Datenbanken cars, animalsund exportieren computers.

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

verwandte Informationen