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.