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.sqlerstellt, 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