MySQL Datenbanken sichern und wiederherstellen
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