Backup aller mySQL Datenbanken

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 OptionLange OptionBedeutung
-A–all-databasesAlle Datenbanken sichern
-a–create-optionsErstellungseigenschaften der Tabelle einfügen
-C–compressDen Datenverkehr zwischen mysql Server und Client komprimieren
-c--complete-insertDie Spaltennamen in der Datei ausschreiben, also z.B.

 

INSERT INTO `table` VALUES
(1, 'Zeile1'),
(2, 'Zeile2'),
(3, 'Zeile3');
-e--extended-insertMehrere Reihen in eine Abfrage kombinieren
 
--skip-extended-insert

Da die Option --extended-insert seit längerem Standard ist, kann man mittels --skip-extended-insert
diese Option ausschalten und bekommt ein INSERT Statement pro Zeile, z.B.

INSERT INTO `table` VALUES (1, 'Zeile1');
INSERT INTO `table` VALUES (1, 'Zeile2');
INSERT INTO `table` VALUES (1, 'Zeile3');
(da diese Art sehr langsam ist, wird sie nur für kleine Tabellen oder zu Analysezwecken so empfohlen)

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

Published by

Steven Varco

Steven ist ein Redhat RHCE- und Kubernetes CKA Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert