Was ist mysqldump und wie verwende ich es?

Als eine der führenden frei verfügbaren Datenbanken ist MySQL eine beliebte Wahl für alle Arten von Webanwendungen. Da Ihre App dem Internet ausgesetzt ist, ist sie natürlich bösartigen Angriffen ausgesetzt. Wenn Ihr Server kompromittiert ist, müssen Sie Ihre Anwendung bestenfalls neu installieren; im schlimmsten Fall können Sie Ihre Daten vollständig verlieren. Sie werden sich auch irgendwann in einer Situation befinden, in der Sie eine Datenbank von einem Server auf einen anderen migrieren müssen.

Wofür wird mysqldump verwendet?


Das mysqldump-Tool hat Sie für beide Situationen abgedeckt. Seine Grundfunktion ist es, eine MySQL-Datenbank zu nehmen und sie als Textdatei „auszugeben“. Aber nicht irgendeine Textdatei…. die Datei ist eine Reihe von SQL-Anweisungen. Diese Anweisungen, wenn sie ausgeführt werden, werden Ihre Datenbank genau so rekonstruieren, wie sie es bei der Ausführung des Speicherauszugs war.

So können Sie mysqldump verwenden, um Exporte aus einer Datenbank zu übernehmen. Dies kann zum Beispiel zum Zwecke von Backups oder weil Sie die Datenbank auf einen neuen Host verschieben. In beiden Fällen werden Sie die Textdatei irgendwann wieder in einen MySQL-Datenbankserver importieren. Es führt alle SQL-Anweisungen in der Datei aus, die Ihre DB in ihren ursprünglichen Zustand zurückversetzt. Dieser Teil verwendet nicht wirklich den Befehl mysqldump, aber es wäre auch ohne dieses Dienstprogramm nicht möglich!

Die MySQL-Dokumente listen andere Methoden zur Erstellung von Backups auf, aber diese haben alle ihre eigenen Nachteile:

Das Hotcopy einer DB von MySQL Enterprise ist eine großartige Möglichkeit, diese Backups zu erstellen…. wenn Ihnen der Enterprise Preis nichts ausmacht.
Das Kopieren der Datenverzeichnisse der DB kann schwierig sein, wenn Sie zwischen Betriebssystemen wechseln, da deren Ziele unterschiedlich sind.
Der Export in eine getrennte Textdatei liefert Ihnen den Inhalt, aber Sie müssen die Struktur selbst neu erstellen. Und du machst es besser richtig…..
Sie können häufig Datenbanken aus GUI-Programmen wie der MySQL Workbench sichern. Dies ist jedoch ein manueller Prozess, d.h. nichts, was Sie skripten oder in einen Batch-Job aufnehmen können.

Installation des mysqldump-Tools

Wenn Sie an diesem Artikel interessiert sind, besteht die Möglichkeit, dass Sie MySQL bereits installiert haben. Wenn das der Fall ist, gute Nachrichten – du hast bereits mysqldump! Wenn nicht, können Sie MySQL einfach auf die für Ihr Betriebssystem übliche Weise installieren.

Für Windows finden Sie hier unsere Anweisungen zur Installation von MySQL unter Windows 7 (der Installationsprozess ist immer noch sehr ähnlich). Ebenso finden Sie unter macOS unsere Hinweise zur Installation von MySQL auf macOS 10.7 (wiederum älter, aber immer noch anwendbar). Benutzer von Ubuntu-basierten Linux-Systemen können den folgenden Befehl verwenden, um den MySQL-Client und die Dienstprogramme zu installieren:

sudo apt installieren mysql-client installieren
Extrahieren eines MySQL-Dumps
Nach der Installation können Sie mysqldump verwenden, um ein vollständiges Backup Ihrer Datenbank zu erhalten.

mysqldump -h[Name oder IP Ihres DB-Hosts] -u[Name des DB-Benutzers] -p[Name der Datenbank] > db_backup.sql
Lassen Sie uns diesen Befehl ein wenig zusammenfassen:

  • „-h“: Dieses Flag ist der Datenbankrechner. Es kann ein vollständiger Hostname (z.B. myhost.domain.com) oder eine IP-Adresse sein. Sie können dieses Feld auch leer lassen, wenn Sie es auf demselben Host wie der MySQL-Server ausführen.
  • „-u“: Wie bereits erwähnt, ist dies dein Benutzername.
  • „-p“: Wenn Sie Ihre MySQL-Installation ordnungsgemäß gesichert haben, benötigen Sie ein Passwort für die Verbindung. Dieses Flag ohne Argument fordert Sie beim Ausführen des Befehls zur Eingabe eines Passworts auf. Manchmal ist es sinnvoll, das Passwort direkt als Argument für dieses Flag anzugeben, z.B. in einem Backup-Skript. Aber an der Eingabeaufforderung sollten Sie das nicht tun, denn wenn jemand Zugang zu Ihrem Computer erhält, kann er dieses Passwort in Ihrem Befehlsverlauf erhalten.
  • „> db_backup.sql“: Dieser letzte Teil sagt mysqldump, dass es seine gesamte Ausgabe in eine Datei leiten soll. Normalerweise würde der Befehl alles direkt an die Konsole ausgeben, was bedeutet, dass Sie eine Reihe von SQL-Anweisungen vorbeifliegen sehen würden. Aber stattdessen ist das > Symbol ein Zeichen, um all diese Dinge in die benannte Textdatei zu übertragen. Und wenn diese Datei nicht existiert, wird sie automatisch erstellt.

Wenn es fertig ist, haben Sie eine.SQL-Datei. Dies ist nur eine Textdatei mit SQL-Anweisungen. Sie können es in jedem Texteditor öffnen, um den Inhalt zu überprüfen. Wenn Sie sich einen Export aus einer WordPress-Datenbank ansehen, können Sie sehen, wie diese Dateien zusammengesetzt sind.

Inhalt einer mysqldump-Datei
Die Datei ist in Abschnitte unterteilt. Im obigen Bild sehen wir den ersten Abschnitt, der die Tabelle für WordPress-Kommentare einrichtet. Der zweite Abschnitt stellt dann den Inhalt (d.h. die Kommentare) wieder her, der sich in diesen Tabellen befand. Wenn Sie Ihren MySQL-Dump erneut importieren, arbeitet der Befehl die Datei durch, führt die Anweisungen aus und baut Ihre Datenbank genau so neu auf, wie sie war. Also, wie machst du das? Lass uns einen Blick darauf werfen.

Importieren einer MySQL-Dump-Datei
Bevor Sie dies tun können, benötigen Sie eine bereits erstellte Datenbank mit einem gültigen Benutzernamen und Passwort. Du solltest auch h