Import und Export von Datenbanken in MySQL über die Befehlszeile
Die Verwaltung von Datenbank-Backups und -Migrationen ist eine wichtige Aufgabe für jeden MySQL-Datenbankadministrator. Mit Hilfe der Kommandozeile können Sie Datenbanken einfach in Sicherungsdateien exportieren oder in eine neue Umgebung importieren. Dieser Leitfaden beschreibt, wie Sie Datenbanken in MySQL über die Befehlszeile importieren und exportieren.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass:
- MySQL ist auf Ihrem Server oder Ihrem lokalen Rechner installiert und läuft.
- Sie haben Zugriff auf ein Terminal oder eine Befehlszeile.
- Sie verfügen über die erforderlichen MySQL-Anmeldeinformationen, einschließlich Benutzername und Passwort.
Datenbanken mit mysqldump exportieren
Das Dienstprogramm mysqldump ist das Standardwerkzeug zum Exportieren von Datenbanken in MySQL. Es erstellt eine .sql-Datei, die die SQL-Anweisungen enthält, die für die Neuerstellung der Datenbank erforderlich sind.
1. Eine einzelne Datenbank exportieren
Um eine einzelne Datenbank zu exportieren, verwenden Sie die folgende Syntax:
mysqldump -u [Benutzername] -p [Datenbank_name] > [Dateiname] .sql
- -u
: Der MySQL-Benutzername.[Benutzername] - -p: Fordert zur Eingabe des MySQL-Passworts auf.
: Der Name der Datenbank, die Sie exportieren möchten.[datenbank_name] .sql: Der Name der Ausgabedatei, die die Datenbanksicherung enthalten wird.[Dateiname]
Beispiel:
Dieser Befehl fragt nach dem Kennwort des Root-Benutzers und erstellt eine Datei namens mydatabase_backup.sql, die alle Daten und die Struktur von mydatabase enthält.
2. Mehrere Datenbanken exportieren
Um mehrere Datenbanken zu exportieren, verwenden Sie die Option –databases, gefolgt von den Namen der Datenbanken:
mysqldump -u [Benutzername] -p --databases [Datenbank1] [Datenbank2] > [Dateiname] .sql
Beispiel:
mysqldump -u root -p --databases db1 db2 > multiple_databases_backup.sql
Dieser Befehl exportiert sowohl db1 als auch db2 in multiple_databases_backup.sql.
3. Alle Datenbanken exportieren
Um alle Datenbanken auf Ihrem MySQL-Server zu exportieren, verwenden Sie die Option –all-databases:
mysqldump -u [Benutzername] -p --all-databases > all_databases_backup.sql
Beispiel:
mysqldump -u root -p --all-databases > all_databases_backup.sql
Dies erstellt ein vollständiges Backup aller Datenbanken in all_databases_backup.sql.
4. Nur Tabellenstruktur exportieren (keine Daten)
Wenn Sie nur die Struktur der Tabellen ohne die Daten benötigen, fügen Sie die Option –no-data hinzu:
mysqldump -u [Benutzername] -p --no-data [Datenbankname] > structure_only.sql
Beispiel:
mysqldump -u root -p --no-data mydatabase > structure_only.sql
5. Bestimmte Tabellen exportieren
Um bestimmte Tabellen aus einer Datenbank zu exportieren, führen Sie diese nach dem Datenbanknamen auf:
mysqldump -u [Benutzername] -p [Datenbankname] [Tabelle1] [Tabelle2] > [Dateiname] .sql
Beispiel:
mysqldump -u root -p mydatabase Tabelle1 Tabelle2 > tables_backup.sql
Datenbanken mit mysql importieren
Um eine Datenbank aus einer SQL-Datei zu importieren, verwenden Sie den Befehl mysql.
1. Importieren einer einzelnen Datenbank
Um eine SQL-Datei in eine MySQL-Datenbank zu importieren, verwenden Sie den folgenden Befehl:
mysql -u [Benutzername] -p [Datenbank_name] < [Dateiname] .sql
- -u
: Der MySQL-Benutzername.[benutzername] - -p: Fordert zur Eingabe des MySQL-Passworts auf.
: Der Name der Datenbank, in die die Daten importiert werden sollen.[datenbank_name] .sql: Der Name der zu importierenden .sql-Datei.[Dateiname]
Beispiel:
mysql -u root -p mydatabase < mydatabase_backup.sql
Mit diesem Befehl wird das Passwort des Root-Benutzers abgefragt und der Inhalt von mydatabase_backup.sql in mydatabase importiert.
2. Importieren in eine neue Datenbank
Wenn Sie in eine neue Datenbank importieren möchten, müssen Sie zunächst die Datenbank erstellen und dann die .sql-Datei importieren.
Schritt 1: Erstellen Sie eine neue Datenbank.
mysql -u [username] -p -e "CREATE DATABASE [new_database_name] ;"
Schritt 2: Importieren Sie die .sql-Datei in die neue Datenbank.
mysql -u [Benutzername] -p [new_database_name] < [Dateiname] .sql
Beispiel:
mysql -u root -p -e "CREATE DATABASE newdatabase;"
mysql -u root -p newdatabase < mydatabase_backup.sql
3. Alle Datenbanken importieren
Wenn Sie alle Datenbanken mit --all-databases gesichert haben, können Sie sie mit importieren:
mysql -u [Benutzername] -p < all_databases_backup.sql
Beispiel:
mysql -u root -p < all_databases_backup.sql
Dieser Befehl stellt alle Datenbanken wieder her, die in der Datei all_databases_backup.sql enthalten sind.
Tipps zur Verwendung von mysqldump und mysql
- Verwenden Sie Komprimierung: Um Speicherplatz und Übertragungszeit zu sparen, können Sie die Backup-Datei mit gzip komprimieren:
mysqldump -u root -p mydatabase | gzip > mydatabase_backup.sql.gz
Und um sie zu importieren:
gunzip < mydatabase_backup.sql.gz | mysql -u root -p mydatabase
- Überprüfen Sie die Datenbank vor dem Import: Stellen Sie sicher, dass die Datenbank, in die Sie importieren wollen, leer ist oder kompatible Daten enthält, um Konflikte zu vermeiden.
- Zeichensatz prüfen: Wenn Sie mit Nicht-ASCII-Zeichen arbeiten, vergewissern Sie sich, dass Sie mit dem richtigen Zeichensatz exportieren und importieren, indem Sie die Option --default-character-set verwenden:
mysqldump -u root -p --default-character-set=utf8 mydatabase > mydatabase_backup.sql
- Fehlerbehandlung: Wenn Sie während des Imports auf Fehler stoßen, prüfen Sie auf allgemeine Probleme wie fehlende Datenbanken oder Tabellenstrukturen und stellen Sie sicher, dass Ihre .sql-Datei vollständig ist.
Zusammenfassung
Das Exportieren und Importieren von MySQL-Datenbanken über die Befehlszeile ist mit mysqldump und mysql ganz einfach. Diese Werkzeuge bieten Flexibilität bei der Verwaltung von Backups, der Migration von Datenbanken zwischen Servern und der Erstellung von Exporten, die nur die Struktur oder nur die Daten betreffen. Wenn Sie die Befehle und ihre Optionen kennen, können Sie einen reibungslosen Datenbankbetrieb sicherstellen und die Datenintegrität bei Übertragungen wahren.