MySQL Datenbank Backup

Ein Backup der kompletten Datenbankstruktur durchführen. Mit dem folgenden Befehl werden alle Datenbanken gesichert und ein Befehl eingefügt der beim Wiedereinspielen vorher alle alten Datenbanken löscht.

mysqldump -uroot -ppasswort --add-drop-table --all-databases > backup.sql

Gleicher Befehl mit gzip Komprimierung.

mysqldump -uroot -ppasswort --add-drop-table --all-databases| gzip -9 > backup.sql.gz

Wiederherstellen aller Datenbanken mit folgendem Befehl.

mysql --user=root --pass=passwort --host=localhost < backup.sql

Wiederherstellung des gzip komprimierten Backups

gunzip < backup.sql.gz | mysql --user=root --pass=passwort --host=localhost

Es ist auch möglich einzelne Datenbanken wiederherzustellen. Dazu muß die Datenbank aber schon existieren.

mysql --user=root --pass=passwort --host=localhost DATENBANKNAME < backup.sql

Das gleiche mit gzip Komprimierung.

gunzip < backup.sql.gz | mysql --user=root --pass=passwort --host=localhost DATENBANKNAME

Wenn nach dem Import eine Fehlermeldung wie diese kommt.
'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

Dann sollte man das Passwort des Users debian-sys-maint ändern. Mit dem ersten Befehl das aktuelle Passwort des Benutzers debian-sys-maint herausfinden. Danach kann man dieses in die Datenbank einfügen.

cat /etc/mysql/debian.cnf |grep password
mysql -uroot -p
USE mysql
UPDATE user SET Password = PASSWORD( '' ) WHERE Host = 'localhost' AND User = 'debian-sys-maint';