MySQL Datenbanken sichern und wiederherstellen

veröffentlicht am 22. August 2017

Mit den MySQL Kommandozeilentools können Datenbanken bequem gesichert und wiederhergestellt werden. Dieser Artikel zeigt die dafür nötigen Grundbefehle. Zum Schluss folgt ein Bashscript, mit dem alle Datenbanken eines MySQL Servers automatisch gesichert werden können.

MySQL Datenbank sichern

Zur Sicherung einer MySQL Datenbank wird das Kommandozeilen-Tool mysqldump benötigt. Es wird standardmäßig zusammen mit dem MySQL Server installiert und wie folgt aufgerufen:

mysqldump -u<Benutzername> -p<Passwort> <Datenbank> > <SQL-Datei>

Beispiel:

mysqldump –uroot –ps3cr3t db1 > /backup/db1.sql

Es ist ebenfalls möglich, MySQL Server über das Netzwerk zu sichern, sofern der Netzwerkzugriff gestattet ist:

mysqldump -h <Server> -u<Benutzername> -p<Passwort> <Datenbank> > <SQL-Datei>

Beispiel:

mysqldump -h mysql-01 -uroot -pg3h3im db1 > /backup/db1.sql

Der Befehl kennt noch etliche weitere Parameter, in den meisten Fällen reichen die Grundeinstellungen jedoch vollkommen aus.

MySQL Datenbank wiederherstellen

Die Syntax zum Wiederherstellen einer Datenbank lautet wie folgt:

mysql -u<Benutzername> –p<Passwort> <Datenbank> < <SQL-Datei>

Beispiel:

mysql –uroot –ps3cret db1 < /backup/db1.sql

Bashscript

Zur Sicherung aller Datenbanken eines MySQL Servers kann folgendes Bashscript verwendet werden. Es sichert jede Datenbank eines Servers in eine eigene SQL-Datei. Zu beachten ist, dass das Script die alten Sicherungen mit jedem Aufruf löscht. Die Sicherungen sollten danach also noch weiter verarbeitet werden.

#! /bin/bash

BACKUPDIR=<Sicherungsordner>
USERNAME=<Benutzername>
PASSWORD=<Passwort>

if [ -d $BACKUPDIR ]; then
    rm -r $BACKUPDIR
fi

mkdir $BACKUPDIR
cd $BACKUPDIR

DATABASES=`mysql -u$USERNAME -p$PASSWORD -Bse 'show databases'`
for DATABASE in $DATABASES; do
    if [ "$DATABASE" != "information_schema" ]; then
        mysqldump -u$USERNAME -p$PASSWORD $DATABASE > ${DATABASE}.sql
    fi
done