MySQL: Sichern (Dump) und Wiederherstellen einer Datenbank mit mysqldump
Dieser Artikel zeigt die richtige Methode zum Sichern und Wiederherstellen einer MySQL-Datenbank von der Befehlszeile unter Linux mit mysqldump- und MySQL-Befehlen.
Wenn Sie MySQL- oder MariaDB-Datenbanken verwenden, ist es sehr wichtig, dass Sie wissen, wie Sie Daten sichern und wiederherstellen. Dies hilft Ihnen, Ihre Daten wiederherzustellen, wenn Ihre Anwendung abstürzt oder die Daten durch einen Systemfehler beschädigt werden.
MySQL und MariaDB enthalten Befehlszeilentools, mit denen Sie Datenbanken schnell und einfach sichern und wiederherstellen können. Das mysqldump
-Tool wird verwendet, um den Inhalt einer Datenbank in eine Textdatei zu exportieren, während der mysql
-Client verwendet werden kann, um Daten aus einer Textdatei in eine MySQL / MariaDB-Datenbank zu importieren.
Verwendung des MySQL-Dump-Befehls
Das Befehlszeilenprogramm mysqldump
exportiert Datenbanken in SQL-Textdateien. Mit anderen Worten, es wird verwendet, um den MySQL-Datenbank-Dump zu erstellen.
Die Syntax für mysqldump
Befehl ist unten angegeben:
mysqldump -u -p > .sql
Wo:
- Benutzername ist Ihr MySQL /MariaDB-Benutzername.
- -p Aufforderung zur Eingabe des Kennworts für diesen Benutzer.
- database_name ist der Name der Datenbank, die Sie sichern möchten.
- Dateiname.sql ist der vollständige Pfad zur SQL-Dump-Datei, die die Sicherung enthält.
Datenbankprozeduren, Funktionen, Ansichten und Ereignisse werden zum Zeitpunkt der Sicherung ausgegeben.
mysqldump: Sichern einer einzelnen MySQL-Datenbank
In diesem Beispiel heißt die Datenbank my_wordpress
. Ersetzen Sie dies durch den Namen der Datenbank, die Sie exportieren möchten. Entsprechend der Syntax wird die Sicherungsdatei am aktuellen Speicherort erstellt.
mysqldump -u root -p my_wordpress > my_wordpress_backup.sql
Geben Sie nach Ausführung des Befehls Ihr MySQL-Root-Passwort ein.
Dadurch wird eine MySQL-Dump-Datei mit dem Namen my_wordpress_backup.sql
erstellt, die alle SQL-Anweisungen zum Erstellen von Tabellen und Wiederherstellen von Daten in einer vorhandenen Datenbank enthält. Wenn während des Exportvorgangs Fehler auftreten, werden diese von mysqldump
auf dem Bildschirm gedruckt.
Der Befehl erzeugt keine visuelle Ausgabe, aber Sie können den Inhalt von my_wordpress_backup.sql
mit dem Befehl head überprüfen, um zu überprüfen, ob es sich um eine legitime MySQL-Dump-Datei handelt.
head -n 5 my_wordpress_backup.sql
-- MariaDB dump 10.19 Distrib 10.5.9-MariaDB, for Linux (x86_64)-- Host: localhost Database: my_wordpress -- Server version 10.3.27-MariaDB-0+deb10u1
mysqldump: Sichern mehrerer MySQL-Datenbanken
Um mehrere MySQL-Datenbanken mit einem Befehl zu sichern, müssen Sie die Option --databases
gefolgt von der Liste der Datenbanken verwenden, die Sie sichern möchten. Darüber hinaus können Sie die Ergebnisdatei an einem Speicherort Ihrer Wahl ablegen.
Führen Sie den folgenden Befehl aus, um eine MySQL-Dump-Datei my_backup.sql
im Verzeichnis /home/backups
mit zwei Datenbanken mit den Namen my_wordpress
und ftpusers
zu erstellen.
mysqldump -u root -p --databases my_wordpress ftpusers > /home/backups/my_backup.sql
mysqldump: Sichern aller MySQL-Datenbanken
Verwenden Sie die Option --all-databases
, um alle MySQL-Datenbanken zu sichern:
mysqldump -u root -p --all-databases > all_db_backup.sql
So erstellen Sie eine komprimierte MySQL-Datenbanksicherung
Wenn die Datenbankgröße sehr groß ist, empfiehlt es sich, die Ausgabe zu komprimieren. Leiten Sie dazu einfach die Ausgabe an den Befehl gzip
und leiten Sie sie wie unten gezeigt in eine Datei um:
mysqldump -u root -p my_wordpress | gzip > my_wordpress_backup.sql.gz
mysql: MySQL aus einer MySQL-Dump-Datei wiederherstellen
Um ein mit mysqldump
erstelltes Backup wiederherzustellen, müssen Sie den Befehl mysql
verwenden.
mysql -u -p < .sql
Wobei
- Benutzername Ihr MySQL / MariaDB-Benutzername ist.
- -p Aufforderung zur Eingabe des Kennworts für diesen Benutzer.
- database_name ist der Name der Datenbank, in der Sie wiederherstellen möchten.
- Dateiname.sql ist der vollständige Pfad zur SQL-Dump-Datei, die die Sicherung enthält.
mysql: Einzelne MySQL-Datenbank wiederherstellen
Sie können alle Tabellen aus der MySQL-Dump-Datei einer bestimmten Datenbank wiederherstellen.
Die Wiederherstellung wird einfach mit dem folgenden Befehl durchgeführt, wobei wir erneut einen Benutzer angeben und zur Eingabe eines Kennworts aufgefordert werden und die my_wordpress_backup.sql
-Datei an die Datenbank my_wordpress
übergeben.
mysql -u root -p my_wordpress < my_wordpress_backup.sql
Sie werden nach dem Passwort Ihres MySQL-Benutzers gefragt.
Sobald dies abgeschlossen ist, sollte die Datenbank in der laufenden Instanz von MySQL verfügbar sein. Die MySQL-Dump-Datei, aus der Sie importiert haben, ist ebenfalls noch vorhanden, sodass Sie sie entweder an dieser Stelle sicher speichern oder löschen können, wenn sie nicht mehr benötigt wird.
mysql: Alle MySQL-Datenbanken wiederherstellen
Sie können alle Datenbanken eines beliebigen MySQL-Servers aus der MySQL-Dump-Datei auf einem anderen MySQL-Server wiederherstellen.
mysql -u root -p < all_db_backup.sql
Fazit
Jetzt können Sie Ihre Datenbankdateien regelmäßig sichern und die Daten bei Bedarf wiederherstellen, indem Sie die obigen Schritte ausführen.
Dieses Tutorial gilt auch, wenn Sie auf einen neuen Server migrieren möchten. Sichern Sie einfach die Datenbank auf Ihrem alten Server und laden Sie die MySQL-Dump-Datei auf den neuen Server hoch. Erstellen Sie eine Zieldatenbank auf dem neuen Server und führen Sie dann die hochgeladene MySQL-Dump-Datei in der neuen Datenbank aus. Darüber hinaus sollten Sie Benutzer und Berechtigungen vom alten MySQL-Server auf den neuen Server neu erstellen.
Für detailliertere Informationen, hier ist der Link zur offiziellen Dokumentation.
Leave a Reply