Backup einer MySQL Datenbank erstellen

In diesem Artikel gehe ich kurz darauf ein, wie wir auf unserem MySQL-Server ein Backup von einer oder allen Datenbanken auf unserem Server erstellen können. Backups sollten immer in regelmäßigen Abständen automatisch erstellt werden, daher sollte diese Vorgehensweise öfters durchgeführt werden.

Durchführung

Backup einer Datenbank

Um ein Backup einer Datenbank zu erstellen, müssen wir im ersten Schritt den Namen einer gezielten Datenbank haben. Wenn wir den Namen nicht wissen, können wir uns alle Datenbanken mit SHOW DATABASES; in der MySQL-Shell anzeigen lassen.

In diesem Beispiel erstellen wir ein Backup der Datenbank _erp_prod. Um dieses Backup zu erstellen, verwenden wir dann den folgenden Befehl. Bei diesem Befehl müssen wir dann nur noch den Datenbanknamen und den Namen der Backup-Datei anpassen.

mysqldump -u root -p _erp_prod > backup.sql

Wichtig: Der Befehl wird aus der Linux-Shell ausgeführt, und nicht aus der MySQL-Shell!

Wir erhalten dann in unserem Verzeichnis in der backup.sql ein Backup der Datenbank und können dieses dann auf einem anderen Datenbankserver wieder einspielen.

Backup mehrerer Datenbanken in einer Datei

In diesem Abschnitt möchten wir mehrere Datenbanken in einer einzigen Datei sichern. Hier verändern wir dann auch wieder die Namen der Datenbanken und der Ausgabe-Datei.

mysqldump -u root -p --databases datenbank_eins datenbank_zwei datenbank_drei > backup.sql

Backup aller Datenbanken in einer Datei

Wenn wir jetzt alle Datenbanken in einer einzigen SQL-Datei sichern möchten, verwenden wir den folgenden Befehl:

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

Skript: Datenbanken in verschiedenen Dateien sichern

Zum Abschluss können wir die Datenbanken auch in verschiedenen Dateien sichern. Dazu habe ich das folgende Skript entworfen:

for DB in $(mysql -e 'show databases' -s --skip-column-names); do
    mysqldump $DB > "$DB.sql";
done

Dieses legt dann für jede Datenbank eine eigene Datei mit dem Namen der Datenbank in dem aktuellen Verzeichnis an.