Nebst dem üblichen Verfahren mit mysqldump kann man eine MySQL-Datenbank auch mittels kopieren von /var/lib/mysql sichern und wiederherstellen. Auf einem Debian-System braucht man nebst den Daten von /var/lib/mysql noch die Datei /etc/mysql/debian.cnf, welche das bei der Installation generierte Passwort des Systembenutzers debian-sys-maint enthält.
MySQL-Datenbank stoppen und das Verzeichnis /var/lib/mysql rekursiv ins Benutzerverzeichnis kopieren. Nach dem Kopiervorgang kann die Datenbank wieder gestartet werden.
server1$ su server1# /etc/init.d/mysql stop server1# cp -R /var/lib/mysql ./ server1# /etc/init.d/mysql start |
Das kopierte Verzeichnis paketieren und auf den neuen Server oder das Backupverzeichnis kopieren.
server1# chown -R mysql:mysql mysql/ server1# tar cvfz ./mysql.tgz mysql server1# scp ./mysql.tgz user@server2:/home/user/ |
Zur Wiederherstellung muss der Dienst auf dem Zielsystem gestoppt werden und ein allfälliges MySQL-Verzeichnis mit bereits bestehenden Daten verschoben respektive gelöscht werden.
server2$ su server2# /etc/init.d/mysql stop server2# mv /var/lib/mysql ./ |
Backup-Datei mysql.tgz ins Verzeichnis /var/lib verschieben und entpacken.
server2# mv /home/user/mysql.tgz /var/lib/ server2# cd /var/lib/ server2# tar xvfz mysql.tgz |
Die Passwort-Hashwerte des Users debian-sys-maint an den Wert von Server1 anpassen und neu starten. Der Hashwert in der Datei debian.cnf muss identisch sein mit dem Wert vom ursprünglichen Server (hier Server1).
server2# nano -w /etc/mysql/debian.cnf server2# /etc/init.d/mysql start |