Ein komplettes Backup aller mysql-datenbanken lässt sich mit dem Befehl:
mysqldump -A -a -C -c -e --user=root --password=****** > dump.sql
durchführen.
Die Optionen bedeuten hier:
Kurze Option | Lange Option | Bedeutung | |
-A | –all-databases | Alle Datenbanken sichern | |
-a | –create-options | Erstellungseigenschaften der Tabelle einfügen | |
-C | –compress | Den Datenverkehr zwischen mysql Server und Client komprimieren | |
-c | --complete-insert | Die Spaltennamen in der Datei ausschreiben, also z.B.
| |
-e | --extended-insert | Mehrere Reihen in eine Abfrage kombinieren | |
| Da die Option
|
Hier noch eine Erklärung des Unterschieds zischen –complete-insert und –extended-insert.
[stextbox id=“tip“ caption=“Tipp“]
Will man das Passwort nicht unbedingt an der Konsole im Klartext eingeben, kann man mit der Zeile:
mysqldump -A -a -C -c -e --user=root --password > dump.sql |
auch erreichen, dass ein Abfrage-Dialog erscheint und man das Passwort ohne Anzeige eingeben kann. (Dies funktioniert natürlich NICHT in automatischen Scripts… :D)
[/stextbox]
Dies ist für automatische Sicherungen aller Datenbanken praktisch.
Eine einzelne Datenbank kann man aber auch einfach wie folgt sichern (z.B. als „Quick Backup“ vor einem Applikations-Update):
mysqldump -u BENUTZER -p DB_NAME > db.sql
Wieder eingespielt wird das Backup mit dem Befehl:
mysql < backup-file.sql
Will man hingegen nur eine bestimmte Datenbank wieder einlesen, geschieht dies mit dem Befehl:
mysql DB_NAME < backup-file.sql
Evtl. muss man natürlich auch beim Einspielen den Benutzernamen und Passwort eingeben:
mysql --user=root --password < backup-file.sql