1. Einführung
MySQL ist ein weit verbreitetes Datenbankmanagementsystem für viele Websites und Anwendungen. Zu den Werkzeugen gehört der Befehl mysqldump, der unerlässlich für das Erstellen von Datenbanksicherungen und das Durchführen von Migrationen ist. Dieser Befehl ist besonders nützlich, wenn Sie nur bestimmte Tabellen einer großen Datenbank sichern müssen.
In diesem Artikel erklären wir im Detail wie man bestimmte Tabellen mit dem mysqldump-Befehl dumpen. Der Leitfaden ist anfängerfreundlich, aber wir behandeln auch erweiterte Optionen und praktische Anwendungsfälle für fortgeschrittene Nutzer.
2. Grundsyntax des mysqldump-Befehls
Zunächst schauen wir uns die grundlegende Verwendung des mysqldump-Befehls an. Dieser Befehl wird verwendet, um die Struktur und die Daten einer gesamten Datenbank oder ausgewählter Tabellen zu dumpen (zu sichern).
Grundsyntax
mysqldump -u username -p database_name table_name > output_file.sql
-u: Gibt den Datenbank‑Benutzernamen an-p: Fragt nach dem Datenbank‑Passwortdatabase_name: Der Name der zu dumpenden Datenbanktable_name: Der Name der spezifischen Tabelle, die gedumpt werden soll> output_file.sql: Die Ausgabedatei, in der das Dump gespeichert wird
Häufig verwendete Optionen
--single-transaction: Stellt Transaktionskonsistenz beim Sichern von InnoDB‑Tabellen sicher--skip-lock-tables: Verhindert das Sperren von Tabellen während des Sicherungsvorgangs

3. Dumpen spezifischer Tabellen
Dumpen einer einzelnen Tabelle
Um nur eine einzelne Tabelle zu sichern, geben Sie den Tabellennamen nach dem Datenbanknamen an. Zum Beispiel dumpt der folgende Befehl ausschließlich die Tabelle users:
mysqldump -u root -p my_database users > users_dump.sql
Dieser Befehl speichert die Struktur und die Daten der Tabelle users aus der Datenbank my_database in users_dump.sql.
Dumpen mehrerer Tabellen
Wenn Sie mehrere Tabellen gleichzeitig sichern möchten, listen Sie die Tabellennamen durch Leerzeichen getrennt auf:
mysqldump -u root -p my_database users orders products > multiple_tables_dump.sql
Dieser Befehl dumpt die Tabellen users, orders und products zusammen.
Verwendung einer Tabellliste
Bei einer großen Anzahl von Tabellen kann das manuelle Eingeben aller Tabellennamen mühsam sein. In diesem Fall können Sie den Befehl SHOW TABLES oder ein Skript verwenden, um automatisch eine Tabellliste zum Dumpen zu erzeugen:
mysql -u root -p my_database -N -e "SHOW TABLES LIKE 'hoge%'" > table_list.txt
mysqldump -u root -p my_database `cat table_list.txt` > partial_dump.sql
Mit dieser Methode können Sie effizient nur die Tabellen sichern, die einem bestimmten Muster entsprechen.
4. Optionen und erweiterte Nutzung
Der mysqldump-Befehl bietet verschiedene Optionen, mit denen Sie Sicherungen je nach Bedarf anpassen können. Nachfolgend einige nützliche Anwendungsfälle.
Nur Struktur dumpen
Wenn Sie nur die Tabellenstruktur ohne Daten benötigen, verwenden Sie die Option --no-data:
mysqldump -u root -p my_database --no-data users > users_structure.sql
Dieser Befehl dumpt ausschließlich die Struktur der Tabelle users.
Nur Daten dumpen
Wenn Sie nur die Daten ohne die Tabellenstruktur wollen, verwenden Sie die Option --no-create-info:
mysqldump -u root -p my_database --no-create-info users > users_data.sql
Dieser Befehl dumpt ausschließlich die Daten der Tabelle users.
Bedingte Dumps
Sie können die Option --where nutzen, um nur Zeilen zu dumpen, die bestimmten Bedingungen entsprechen. Beispiel: Nur Zeilen dumpen, bei denen id größer als 100 ist:
mysqldump -u root -p my_database users --where="id > 100" > users_filtered_dump.sql
Dies ist nützlich, um nur den benötigten Teil der Daten großer Tabellen zu sichern.

5. Praktische Beispiele
Anwendungsfall 1: Sichern einer einzelnen Tabelle
Beispiel: Nur die Tabelle salary aus der Datenbank employees sichern:
mysqldump -u root -p employees salary > salary_dump.sql
Anwendungsfall 2: Sichern von Daten mit Bedingungen
Um nur einen Teil der Daten zu dumpen, verwenden Sie die Option --where. Zum Beispiel, um nur Zeilen zu sichern, bei denen id größer als 100 ist, aus der Tabelle users:
mysqldump -u root -p my_database users --where="id > 100" > users_partial_dump.sql
6. Best Practices und Überlegungen
Vermeidung von Tabellen‑Sperrproblemen
Beim Einsatz von mysqldump können Tabellen gesperrt werden, was andere Vorgänge verhindert. Auf Produktionssystemen wird empfohlen, die Option --single-transaction zu nutzen, um Ausfallzeiten zu vermeiden. Für InnoDB‑Tabellen ist die Kombination mit --skip-lock-tables noch sicherer.
Umgang mit großen Datenmengen
Bei sehr großen Datenbanken kann der Dump‑Vorgang lange dauern. Eine gängige Praxis ist, die Ausgabe in Echtzeit mit gzip zu komprimieren:
mysqldump -u root -p my_database | gzip > backup_$(date +%Y%m%d).sql.gz
Dieser Befehl spart Speicherplatz, indem er den Dump während seiner Erstellung komprimiert.

7. Fazit
In diesem Artikel haben wir erläutert, wie man mit dem mysqldump‑Befehl bestimmte Tabellen dumpen kann. Von der Grundsyntax über bedingte Dumps, reine Struktur‑ oder Daten‑Exporte bis hin zur Automatisierung mittels Skripten haben wir ein breites Anwendungsspektrum abgedeckt. Der mysqldump‑Befehl ist ein leistungsstarkes Werkzeug, das bei richtiger Anwendung Datenbank‑Backups und -Migrationen erheblich erleichtert.
Im nächsten Artikel gehen wir auf weiterführende mysqldump‑Optionen ein und vergleichen sie mit anderen Datenbank‑Backup‑Tools.


