442 Stimmen

Export und Import aller MySQL-Datenbanken auf einmal

Ich möchte ein Backup aller meiner MySQL-Datenbanken erstellen. Ich habe mehr als 100 MySQL-Datenbanken. Ich möchte sie alle gleichzeitig exportieren und alle gleichzeitig wieder in meinen MySQL-Server importieren. Wie kann ich das tun?

10voto

msn Punkte 140

Warum die formatierte Ausgabe parsen, wenn der mysql-Befehl direkt tun kann, was Sie wollen?

databases=`mysql -u $USER -p$PASSWORD --batch --skip-column-names -e "SHOW DATABASES;" | grep -E -v "(information|performance)_schema"`

Listet die Datenbanknamen auf und nur diese.

4voto

ashikpatel Punkte 166

Wenn Sie die gesamte Datenbank dumpen. Offensichtlich ist es mit großen Daten. So können Sie unten für besser bevorzugen:

Backup erstellen:

mysqldump -u [user] -p[password]--single-transaction --quick --all-databases | gzip > alldb.sql.gz

Wenn Fehler

-- Warnung: Die Daten der Tabelle mysql.event werden übersprungen. Geben Sie die Option --events explizit an.

使用する。

mysqldump -u [user] -p --events --single-transaction --quick --all-databases | gzip > alldb.sql.gz

Backup wiederherstellen:

gunzip < alldb.sql.gz | mysql -u [user] -p[password]

Ich hoffe, es hilft :)

3voto

Seien Sie vorsichtig, wenn Sie aus verschiedenen MySQL-Versionen exportieren und in diese importieren, da die MySQL-Tabellen unterschiedliche Spalten haben können. Wenn Sie Pech haben, funktioniert die Berechtigungsvergabe möglicherweise nicht. Ich habe dieses Skript (mysql_export_grants.sql ) erstellt, um die Berechtigungen für den Import in die neue Datenbank auszulagern, nur für den Fall:

#!/bin/sh
stty -echo
printf 'Password: ' >&2
read PASSWORD
stty echo
printf "\n"
if [ -z "$PASSWORD" ]; then
        echo 'No password given!'
        exit 1
fi
MYSQL_CONN="-uroot -p$PASSWORD"
mysql ${MYSQL_CONN} --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | mysql ${MYSQL_CONN} --skip-column-names -A | sed 's/$/;/g'

3voto

Raskul Punkte 1214

Datenbank exportieren:

für den Export können Sie diesen Befehl verwenden:

mysqldump -u root -p --all-databases > alldb.sql

         (you user name)           (file name will be save)

und eigentlich habe ich diesen Beitrag geschrieben, weil es keinen Grund gibt, alle Datenbanken in einer Datei zu sichern. es könnte einen Fehler beim Importieren verursachen. Es gibt zum Beispiel einige Standarddatenbanken und es gibt keinen Grund, diese zu sichern.

Daher sollten Sie die Datenbanken auswählen, die Sie sichern möchten.

mysqldump -u root -p --databases YourDBName1 YourDBName2 YourDBName3 > tutorials_query1.sql

                             (your databases name that you want to backup)

können Sie mit diesem Befehl alle Datenbanknamen abrufen:

sudo mysql -u root -p

und geben Sie Ihr Passwort ein und dann vor mysql> führen Sie diesen Befehl aus:

SHOW DATABASES;

Datenbank importieren:

mysql -u root -p < alldb.sql

  (your username)   (it can be the full path like "/home/yoursqlfile.sql")

1voto

Indal Raj Punkte 11

Alle Datenbanken in Ubuntu exportieren

1 - mysqldump -u root -p --databases database1 database2 > ~/Desktop/databases_1_2.sql

OR

2 - mysqldump -u root -p --all_databases > ~/Desktop/all_databases.sql

enter image description here

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X