MySQL Dumper Datenbank sichern und wiederherstellen
Inhaltsverzeichnis:
- Mysqldump-Befehlssyntax
- Sichern Sie eine einzelne MySQL-Datenbank
- Sichern Sie mehrere MySQL-Datenbanken
- Sichern Sie alle MySQL-Datenbanken
- Sichern Sie alle MySQL-Datenbanken in separaten Dateien
- Erstellen Sie eine komprimierte MySQL-Datenbanksicherung
- Erstellen Sie ein Backup mit Zeitstempel
- Wiederherstellen eines MySQL-Dumps
- Stellen Sie eine einzelne MySQL-Datenbank aus einem vollständigen MySQL-Dump wieder her
- Exportieren und Importieren einer MySQL-Datenbank in einem Befehl
- Automatisieren Sie Backups mit Cron
- Fazit
In diesem Tutorial wird erklärt, wie Sie MySQL- oder MariaDB-Datenbanken mit dem Dienstprogramm mysqldump über die Befehlszeile sichern und wiederherstellen.
Die vom Dienstprogramm mysqldump erstellten Sicherungsdateien bestehen im Wesentlichen aus einer Reihe von SQL-Anweisungen, mit denen die ursprüngliche Datenbank wiederhergestellt werden kann. Der Befehl mysqldump kann auch Dateien im CSV- und XML-Format generieren.
Sie können auch das Dienstprogramm mysqldump verwenden, um Ihre MySQL-Datenbank auf einen anderen MySQL-Server zu übertragen.
Mysqldump-Befehlssyntax
Bevor wir mit der Verwendung des Befehls mysqldump beginnen, überprüfen wir zunächst die grundlegende Syntax.
Die Ausdrücke des Dienstprogramms mysqldump haben die folgende Form:
mysqldump > file.sql
-
options
- Die mysqldump-file.sql
- Die Sicherungsdatei
Um den Befehl mysqldump verwenden zu können, muss der MySQL-Server erreichbar sein und ausgeführt werden.
Sichern Sie eine einzelne MySQL-Datenbank
Der häufigste Anwendungsfall des mysqldump-Tools ist das Sichern einer einzelnen Datenbank.
Um beispielsweise eine Sicherung der Datenbank mit dem Namen
database_name
mit dem Benutzer
root
zu erstellen und in einer Datei mit dem Namen
database_name.sql
zu
database_name.sql
Sie den folgenden Befehl aus:
mysqldump -u root -p database_name > database_name.sql
Sie werden aufgefordert, das root-Passwort einzugeben. Nach erfolgreicher Authentifizierung wird der Dump-Vorgang gestartet. Abhängig von der Datenbankgröße kann der Vorgang einige Zeit dauern.
mysqldump database_name > database_name.sql
Sichern Sie mehrere MySQL-Datenbanken
Um mehrere MySQL-Datenbanken mit einem Befehl zu
--database
müssen Sie die Option
--database
gefolgt von der Liste der zu
--database
Datenbanken verwenden. Jeder Datenbankname muss durch ein Leerzeichen getrennt werden.
mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql
Mit dem obigen Befehl wird eine Speicherauszugsdatei erstellt, die beide Datenbanken enthält.
Sichern Sie alle MySQL-Datenbanken
Verwenden Sie die Option
--all-databases
, um alle MySQL-Datenbanken zu
--all-databases
:
mysqldump -u root -p --all-databases > all_databases.sql
Wie im vorherigen Beispiel wird mit dem obigen Befehl eine einzelne Speicherauszugsdatei erstellt, die alle Datenbanken enthält.
Sichern Sie alle MySQL-Datenbanken in separaten Dateien
Das Dienstprogramm
mysqldump
bietet keine Möglichkeit, alle Datenbanken in separaten Dateien zu sichern. Dies erreichen wir jedoch problemlos mit einer einfachen Bash-
FOR
Schleife:
for DB in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $DB > "$DB.sql"; done
Mit dem obigen Befehl wird für jede Datenbank eine separate Sicherungsdatei erstellt, wobei der Datenbankname als Dateiname verwendet wird.
Erstellen Sie eine komprimierte MySQL-Datenbanksicherung
Wenn die Datenbank sehr groß ist, empfiehlt es sich, die Ausgabe zu komprimieren. Um dies zu tun, leiten Sie die Ausgabe einfach an das Dienstprogramm
gzip
und leiten Sie sie in eine Datei um, wie unten gezeigt:
mysqldump database_name | gzip > database_name.sql.gz
Erstellen Sie ein Backup mit Zeitstempel
mysqldump database_name > database_name-$(date +%Y%m%d).sql
Der obige Befehl erstellt eine Datei mit dem folgenden Format
database_name-20180617.sql
Wiederherstellen eines MySQL-Dumps
Sie können einen MySQL-Dump mit dem MySQL-Tool wiederherstellen. Die allgemeine Befehlssyntax lautet wie folgt:
mysqld database_name < file.sql
In den meisten Fällen müssen Sie eine Datenbank erstellen, in die Sie importieren möchten. Wenn die Datenbank bereits vorhanden ist, müssen Sie sie zuerst löschen.
Im folgenden Beispiel erstellt der erste Befehl eine Datenbank mit dem Namen
database_name
und importiert anschließend den Speicherauszug
database_name.sql
:
mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql
Stellen Sie eine einzelne MySQL-Datenbank aus einem vollständigen MySQL-Dump wieder her
mysql --one-database database_name < all_databases.sql
Exportieren und Importieren einer MySQL-Datenbank in einem Befehl
Anstatt eine Speicherauszugsdatei aus einer Datenbank zu erstellen und dann die Sicherung in eine andere MySQL-Datenbank zu importieren, können Sie den folgenden Einzeiler verwenden:
mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name
Der obige Befehl leitet die Ausgabe an einen MySQL-Client auf dem Remote-Host weiter und importiert sie in eine Datenbank mit dem Namen
remote_database_name
. Stellen Sie vor dem Ausführen des Befehls sicher, dass die Datenbank bereits auf dem Remoteserver vorhanden ist.
Automatisieren Sie Backups mit Cron
Das Automatisieren des Sicherungsprozesses der Datenbanken ist so einfach wie das Erstellen eines Cron-Jobs, mit dem der Befehl mysqldump zur angegebenen Zeit ausgeführt wird.
Führen Sie die folgenden Schritte aus, um automatische Sicherungen einer MySQL-Datenbank mit cronjob einzurichten:
-
Erstellen Sie eine Datei mit dem Namen
.my.cnf
in Ihrem Benutzerverzeichnis:sudo nano ~/.my.cnf
Kopieren Sie den folgenden Text und fügen Sie ihn in die Datei.my.cnf ein.
user = dbuser password = dbpasswd
Vergessen Sie nicht,
dbuser
unddbpasswd
durch den Datenbankbenutzer und das Kennwort des Benutzers zu ersetzen.Schränken Sie die Berechtigungen der Anmeldeinformationsdatei ein, sodass nur Ihr Benutzer Zugriff darauf hat:
chmod 600 ~/.my.cnf
Erstellen Sie ein Verzeichnis zum Speichern der Backups:
mkdir ~/db_backups
Öffnen Sie Ihre Benutzer-Crontab-Datei:
crontab -e
Fügen Sie den folgenden Cron-Job hinzu, der jeden Tag um 3 Uhr morgens eine Sicherung des Datenbanknamens
mydb
:0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql
Vergessen Sie nicht, den
username
durch Ihren tatsächlichen Benutzernamen zu ersetzen.
Sie können auch einen weiteren Cronjob erstellen, um Backups zu löschen, die älter als 30 Tage sind:
find /path/to/backups -type f -name "*.sql" -mtime +30 -delete
Natürlich müssen Sie den Befehl entsprechend Ihrem Sicherungsort und den Dateinamen anpassen. Weitere Informationen zum Befehl find finden Sie in der Anleitung zum Suchen von Dateien unter Linux mithilfe der Befehlszeile.
Fazit
Dieses Tutorial behandelt nur die Grundlagen, aber es sollte ein guter Einstieg für alle sein, die lernen möchten, wie man MySQL-Datenbanken mit dem Hilfsprogramm mysqldump über die Befehlszeile erstellt und wiederherstellt.
Sie können auch im Tutorial nachlesen, wie Sie ein MySQL-Root-Passwort zurücksetzen, falls Sie es vergessen haben.
mysql mariadb backup mysqldumpSidekick Lektion: Sichern, Sichern, Sichern
Roundup: 4 Backup-Utilities für mobile Geräte, die Sie anstoßen, um Ihre wertvollen Objekte zu schützen Daten.
Sichern, Wiederherstellen, Migrieren von Oculus Rift-Spieldateien mit vrBackupper
VrBackupper ist eine kostenlose Software für Windows, entwickelt für Backup und stelle Oculus Rift und seine Spiele und Apps wieder her oder verschiebe das Installationsverzeichnis von Oculus Rift.
Sichern und Wiederherstellen von Browsereinstellungen mit FavBackup
FavBackup hilft Ihnen beim Sichern und Wiederherstellen von Internet Explorer, Firefox, Chrome, Opera, Safari Favoriten und Einstellungen. Lies Rezension und lade sie kostenlos herunter.