Suche
Suche Menü

MySQL Backups auf der Konsole

Mit den Programmen mysqldump und mysql können Backups einer MySQL Datenbank erstellt und wiederhergestellt werden. Dabei spielt die grösse einer Datenbank keine Rolle, was ein unschlagbarer Vorteil im Vergleich zum phpMyAdmin sein kann.

mysqldump

Der Grundaufruf von mysqldump sieht wie folgt aus:

mysqldump -u [USERNAME] --password="[PASSWORT]" [DATENBANK]  > [BACKUP_DATEI_NAME].sql

Mit weiteren Parametern:

mysqldump --no-tablespaces --extended-insert --compress --quote-names --single-transaction --routines --triggers --opt -u [MYSQL_USER] --password="[MYSQL_PW]" [MYSQL_DB]  > [BACKUP_DATEI_NAME].sql

Will man das Backup gleich auch mit gzip komprimieren:

mysqldump --max_allowed_packet=512M --no-tablespaces --extended-insert --compress --quote-names --single-transaction --routines --triggers --opt -u [MYSQL_USER] --password="[MYSQL_PW]" [MYSQL_DB] | gzip -c > [BACKUP_DATEINAME].sql.gz

mysqldump kann auch via SSH Remote ausgeführt werden. Dazu sollte die Ausführung in eine Scriptdatei ausgelagert werden:

ssh -C -f -L$[FORWARD_PORT]:[MYSQL_SERVER]:[MYSQLPORT -p [SSH_PORT] -i [SSH_PRIVATE_KEY] [SSH_USER]@[SSH_SERVER] sleep 5

mysqldump -h 127.0.0.1 -P $[FORWARD_PORT] --max_allowed_packet=512M --no-tablespaces --extended-insert --compress --quote-names --single-transaction --routines --triggers --opt -u [MYSQL_USER] --password="[MYSQL_PW]" [MYSQL_DB] > [BACKUP_DATEI_NAME].sql

Wenn man der Backupdatei ein Datum hinzufügen will, kann dies wie folgt gemacht werden:

mysqldump -u [USERNAME] --password="[PASSWORT]" [DATENBANK]  > `date +%Y.%m.%d-%H.%M.%S`_DATEINAME.sql'

mysql

Um ein Datenbankbackup wiederherzustellen wird das mysql Programm genutzt:

mysql -u [MYSQL_USER] --password="[MYSQL_PW]" [MYSQL_DB] < [BACKUP_DATEI_NAME].sql

Wenn die Backupdatei mit gzip komprimiert ist.

gunzip < [BACKUP_DATEI_NAME].sql.gz | mysql [MYSQL_USER] --password="[MYSQL_PW]" [MYSQL_DB]

Die Datei auf einem Remoteserver wiederherstellen:

gunzip -c [BACKUP_DATEI_NAME].sql.gz | ssh -p [SSH_PORT] -i [SSH_PRIVATE_KEY] [SSH_USER]@[SSH_SERVER] "mysql -h [MYSQL_SERVER] -P [MYSQL_PORT] -u [MYSQL_USER] --password='[MYSQL_PW]' [MYSQL_DB] 

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.