Datenbankadministratoren und Systemadministratoren müssen Backups ihrer MySQL-Datenbank erstellen, und das Dienstprogramm mysqldump ist das am häufigsten verwendete Tool, um eine gesamte Datenbank oder ein einzelnes Objekt in eine Textdatei zu konvertieren. Nachdem das mysqldump-Dienstprogramm eine Backup-Datei erstellt hat, kann es verwendet werden, um Daten auf einem Server wiederherzustellen oder Daten in eine andere Datenbank zu migrieren.
Was ist mysqldump?
Das mysqldump-Tool ist ein Befehlszeilen-Dienstprogramm, das in MySQL enthalten ist,um SQL-Anweisungen zu exportieren, die eine Datenbank oder eine Teilmenge von Objekten in einer Datenbank neu erstellen können. Sie kann verwendet werden, um ein Backup von Datenbankobjekten und -daten zu erstellen, oder sie kann verwendet werden, um eine Datenbank von einem Server auf einen anderen zu übertragen. Administratoren können mysqldump verwenden, um Daten in ein bestimmtes Format wie XML und CSV zu exportieren.
So können Sie mysqldump zum Sichern einer einzigen Tabelle verwenden
Mit dem Dienstprogramm mysqldump können nur bestimmte Tabellen in eine Datenbank exportiert werden. Angenommen, Sie möchten nur eine einzelne Kundentabelle aus einer E-Commerce-Datenbank exportieren. Die Kundendatentabellendaten können dann zum Senden von Marketing-E-Mails verwendet werden. Das mysqldump-Dienstprogramm exportiert die Kundentabelle und ihre Daten in eine Textdatei.
Hinweis: Um jeden Befehl in mysqldump erfolgreich auszuführen, muss der Benutzername, der für den Zugriff auf die Datenbank verwendet wird, über die entsprechenden Berechtigungen für den Zugriff auf Objekte verfügen. Ohne Zugriff exportiert der Befehl kein Schema, Objekt oder Daten.
Sie müssen den Datenbanknamen und den Tabellennamen angeben, um Objekte erfolgreich in eine Textdatei zu exportieren. Wenn Sie überprüfen möchten, ob Sie den richtigen Tabellennamen haben, stellen Sie zunächst sicher, dass Sie in der Datenbank authentifiziert sind, mit der Sie arbeiten möchten. Führen Sie dann den folgenden SQL-Befehl in der MySQL-Befehlszeile oder der Workbench-Anwendung aus:
SHOW TABLES;
Nachdem Sie den richtigen Tabellennamen gefunden haben, können Sie die Tabelle in eine Textdatei exportieren. Mit dem folgenden Befehl wird die Kundentabelle aus der Datenbank myDB in die Datei customers.sql exportiert:
mysqldump -u username -p password myDB Customer > customers.sql
Die Begriffe „Benutzername“ und „Passwort“ sollten durch Ihren eigenen Benutzernamen und Ihr eigenes Passwort ersetzt werden. Sie können mehrere Tabellen exportieren, indem Sie jede Tabelle durch ein Leerzeichen trennen. Im Folgenden werden die Kunden- und Bestelltabellen in customers_orders.sql exportiert:
mysqldump -u username -p password myDB Customer Order > customers_orders.sql
Nachdem Sie die SQL-Anweisungen in eine Datei exportiert haben, können Sie die SQL-Datei mit einem Standardtexteditor oder mit MySQL Workbench öffnen. MySQL Workbench ist eine separate Installation von der MySQL-Datenbank, aber Sie können sie kostenlos von der MySQL-Website herunterladen. MySQL Es ist am besten, es mit Workbench zu öffnen, da Sie dann die Kontoauszüge ausführen und Daten auf den Ziel-MySQL-Datenbankserver importieren können.
mysqldump Beispiele
Das Dienstprogramm mysqldump wird hauptsächlich für Backups oder die Übertragung von Daten auf einen anderen Datenbankserver verwendet. Unabhängig davon, ob Sie ein Backup Ihrer Datenbank erstellen oder Daten auf einen anderen Server übertragen möchten, funktioniert das mysqldump-Dienstprogramm genauso. Eine gängige Verwendung für ein mysqldump-Backup ist die Erstellung einer Testumgebung aus der Produktionsdatenbank.
Um eine Produktionsdatenbank zum Erstellen einer Testumgebung zu verwenden, können Sie mit dem Dienstprogramm mysqldump ein vollständiges Backup Ihrer Datenbank erstellen. Mit dem folgenden Befehl wird ein Backup Ihrer gesamten Datenbank namens myDB erstellt und in eine Datei namens myDB.sql exportiert:
mysqldump -u username -p password -databases myDB > myDB.sql
Melden Sie sich jetzt bei Ihrem Testserver an. Außerdem muss MySQL installiert sein, damit Sie die exportierten Daten importieren können. Beachten Sie, dass der Exportbefehl das Zeichen „>“ verwendet, um Daten aus einer Datenbank in eine SQL-Datei zu verschieben. Der Importprozess verwendet das Zeichen „<“. Mit dem folgenden Befehl werden alle Daten in der Datei myDB.sql in eine Testumgebung mit derselben Datenbank namens myDB importiert:
mysqldump -u username -p password -databases myDB < myDB.sql
Mit den beiden oben genannten Befehlen replizieren Sie Daten aus der ursprünglichen myDB-Datenbank in der Produktion in Ihre Testumgebung. Die Testumgebung gibt Entwicklern und Qualitätssicherungsmitarbeitern die Möglichkeit, mit realen Daten und einer Datenbankstruktur zu arbeiten, die Kunden- oder Mitarbeiterprobleme bei der Fehlerbehebung nachahmt.
Grundlegende Verwendung von mysqldump
Die während eines mysqldump erstellte .sql-Datei ist eine einfache Textdatei. Sie können es in jedem Texteditor öffnen, aber es ist am besten, es mit MySQL Workbench zu öffnen. Workbench-Farbcodebefehle und Datentypen, wodurch die SQL-Befehle leichter zu lesen sind.
Sie können die .sql-Datei in Workbench über das Menü Datei öffnen. Klicken Sie im Dialogfeld auf „SQL-Skript öffnen“ und wählen Sie die .sql-Datei aus, die Sie lesen möchten. Wenn die .sql-Datei geöffnet ist, können Sie sie lesen und mit dem Menüelement „SQL-Skript ausführen“ ausführen, wenn Sie die Befehle ausführen möchten. Workbench wird unter Windows und Linux ausgeführt, sodass Sie auf diese Weise ein Skript auf beiden Betriebssystemen ausführen können.
Sie können auch eine mysqldump-Datei unter Windows und Linux mit dem Dienstprogramm mysqldump ausführen. Mit dem folgenden Befehl werden die SQL-Anweisungen auf einer MySQL-Datenbank sowohl in Windows als auch in Linux vom Dienstprogramm mysqldump ausgeführt:
mysqldump -u username -p password -databases myDB < myDB.sql
Der obige Befehl importiert Daten aus der myDB.sql mysqldump-Datei und führt die SQL-Anweisungen auf dem lokalen Datenbankserver aus. Der Befehl importiert Daten in die myDB-Datenbank.
Wenn keine Daten in der Datenbank oder in einer der Tabellen der Datenbank vorhanden sind, werden die Datenbankstrukturen weiterhin erstellt und die Datenbank wird dem Schema hinzugefügt. Die Tabellenstrukturen stehen Ihnen zur Verfügung, um ihnen in Zukunft Daten hinzuzufügen.
Erweiterte Nutzung von mysqldump
Eine große Datenbank könnte Tabellen mit Terabyte an Daten enthalten. Zu viele Exporte könnten Storage-Ressourcen verbrauchen, aber Sie können jede Datei komprimieren, um den für MySQL-Datenexporte erforderlichen Speicherplatz zu reduzieren. Durch das Komprimieren einer Datei können mehrere Gigabyte an Speicherplatz für sehr große Dateien eingespart werden. Der folgende Befehl mysqldump exportiert die myDB-Datenbank und komprimiert sie mithilfe des gzip-Dienstprogramms in eine Datei namens myDB.sql.gz:
mysqldump -u username -p password -databases myDB | gzip myDB.sql.gz
Backups enthalten oft sensible Daten, sodass die Verschlüsselung für Compliance und Datenschutz erforderlich ist. Sie benötigen ein Drittanbieter-Tool, um Daten zu verschlüsseln. In diesem Beispiel verwenden wir Ccrypt, um die Datei myDB.sql zu verschlüsseln. Sie benötigen einen Schlüssel (ähnlich einer Passphrase), um eine Datei zu verschlüsseln, aber Sie müssen sich diesen Schlüssel merken, um sie zu entschlüsseln. Das Ccrypt-Dienstprogramm fordert Sie auf, einen Schlüssel einzugeben, wenn Sie die Datei verschlüsseln, oder Sie können einen Schlüssel in einer sicheren Datei speichern, wo er zum Verschlüsseln und Entschlüsseln einer .sql-Datei wiederverwendet werden kann.
Im folgenden Beispiel wird die exportierte .sql-Datei mit einem gespeicherten Schlüssel in der Datei namens mykey.key verschlüsselt:
mysqldump -u username -p password -databases myDB | ccrypt -k mykey.key > myDB.sql.cpt
Beachten Sie, dass die Daten in eine .cpt-Datei exportiert werden. In dieser .cpt-Datei werden alle verschlüsselten Daten gespeichert. Sie benötigen denselben Schlüssel, um die Datei zu entschlüsseln. Sie können sie mit dem folgenden Befehl entschlüsseln:
cdecrypt -k mykey.key myDB.sql.cpt
Die meisten Datenbanken enthalten mehr als Tabellen und Daten. Auslöser und Verfahren müssen ebenfalls gesichert werden. Standardmäßig exportiert das mysqldump-Dienstprogramm Auslöser mit einem Standardexport, aber Administratoren können den Befehl zum Export ausdrücklich anweisen. Verfahren werden nicht standardmäßig exportiert, sodass Administratoren sie explizit exportieren müssen. Der folgende Befehl exportiert Auslöser und Verfahren zusammen mit anderen Datenbankobjekten und Daten:
mysqldump -u Benutzername -p Passwort -Datenbanken myDB –triggers=true –Routines=true > myDB.sql
Best Practices für mysqldump
Jedes Mal, wenn Sie das mysqldump-Dienstprogramm nutzen müssen, können Sie es frei nutzen, ohne die Produktivität zu beeinträchtigen. Dies ist besonders nützlich, wenn Sie häufige Backups oder Exporte Ihrer Datenbank und ihrer Daten durchführen müssen. Backups sollten oft durchgeführt werden, damit Daten im Falle eines Datenbankausfalls, einer Malware oder einer Datenbeschädigung abgerufen werden können.
Die Häufigkeit von Backups hängt von der Datenmenge ab, die Sie täglich zu einer Datenbank hinzufügen, und von der Häufigkeit der Änderungen an der Datenbank. Im Allgemeinen hängt die Häufigkeit, mit der Sie den mysqldump-Befehl verwenden, von der Datenmenge ab, die verloren gehen kann, ohne negative Auswirkungen auf Umsatz und Geschäftskontinuität zu haben. Sie benötigen nicht immer ein vollständiges Backup, aber einige Unternehmen nutzen das mysqldump-Dienstprogramm einmal pro Woche und andere nutzen es einmal täglich. Bestimmen Sie die Häufigkeit vollständiger Backups, die für Ihr Unternehmen erforderlich sind, und verwenden Sie Automatisierungstools, um mysqldump in einem festgelegten Intervall auszuführen.
Fazit
Das Verwalten einer Datenbank ist ein Vollzeitjob, aber das mysqldump-Dienstprogramm macht das Management viel effizienter. Sie können sie für vollständige Backups Ihrer Daten oder für die Übertragung von Daten zwischen Servern verwenden. Sie ist mit Windows oder Linux kompatibel, sodass Sie sie in jeder Umgebung verwenden können, in der Ihr MySQL-Server gehostet wird.