Dies ist eine alte Version des Dokuments!
LU13b: Ganze Datenbank exportieren & importieren (SQL)
Lernziele
Aufbauend auf LU13a (CSV-Import/-Export) können Sie …
- erklären, wann ein CSV-Export (nur Daten) und wann ein SQL-Dump (Struktur + Daten) sinnvoll ist.
- eine komplette Datenbank (Struktur + Daten) aus WebStorm heraus als SQL-Skript exportieren.
- ein SQL-Skript in WebStorm wieder importieren (
Run SQL Scriptbzw.Restore with mysql). - die GUI-Variante in WebStorm mit der Nutzung des CLI-Tools mysqldump vergleichen.
- grundlegend verstehen, wie Datenbanken auch direkt über die CLI mit
mysqldumpundmysqlgesichert und wiederhergestellt werden können.
Voraussetzungen
- WebStorm mit Database Tools and SQL-Plugin
- Datenquelle (MySQL) ist verbunden
- Beispiel-Datenbank
travel_blogist vorhanden- Tabellen:
categories,post_category,posts,users - enthält Beispielinhalte eines echten WordPress-Blogs (Auszug aus wetraveltheworld.de)
- Zip als SQL
- Export-Zielordner ist beschreibbar
- MySQL-Tools (
mysql,mysqldump) sind installiert
Video: Gesamtexport & Wiederherstellung einer Datenbank
Im Video wird die Datenbank travel_blog mit mysqldump exportiert und mit mysql wieder importiert.
1) Kontext & Varianten im Überblick
In LU13a haben wir Daten als CSV-Dateien importiert und exportiert – also reine Datensätze ohne Struktur.
Wenn Sie jedoch eine ganze Datenbank sichern wollen (Tabellenstruktur + Inhalte), arbeiten Sie mit SQL-Skripten bzw. sogenannten Dumps 1).
Typische Varianten:
| Variante | Beschreibung | Vorteile | Nachteile |
|---|---|---|---|
| A) GUI: SQL-Generator + Daten-Export | WebStorm erzeugt ein DDL-Skript für die Struktur und separate Skripte/CSV für die Daten | Ohne zusätzliche Tools, gut nachvollziehbar, ideal für Unterricht | Mehrere Dateien, bei vielen Tabellen unübersichtlich |
B) GUI: Export mit mysqldump | WebStorm ruft im Hintergrund das CLI2)-Tool mysqldump auf und schreibt einen vollständigen Dump | Ein File, Standard-Format für Backups/Migrationen | Pfad zur EXE nötig, MySQL-Tools müssen lokal installiert sein |
C) CLI: mysqldump / mysql (optional) | Direkter Aufruf im Terminal ohne WebStorm | Unabhängig von IDE, eignet sich für Server (nur CLI-Zugriff) | CLI-Kenntnisse nötig, PATH-Variable muss korrekt gesetzt sein |
Im Unterricht arbeiten wir primär mit den GUI-Varianten (A und B). Variante C (CLI) ist eine Kurz-Vorschau für Fortgeschrittene.
2) mysqldump – Grundidee
Das Utility-Tool mysqldump ist ein Kommandozeilenprogramm:
- Es erstellt aus einer Datenbank ein SQL-File, in dem alle nötigen Befehle stehen:
- Struktur: z. B.
CREATE DATABASE,CREATE TABLE … - Daten: viele
INSERT INTO …-Befehle
- Dieses File kann später mit
mysqlwieder eingelesen werden, um die Datenbank komplett aufzubauen. - Auf produktiven Servern steht oft nur ein CLI-Zugriff zur Verfügung – dort ist
mysqldumpder Standardweg für Backups.
3) Variante A: Export (GUI ohne mysqldump) – Datenbank-Struktur
Diese Variante nutzt nur WebStorm und ist unabhängig von mysqldump. Sie ist gut geeignet, um das Prinzip von Struktur vs. Daten zu verstehen.
A. Datenbank-Struktur (DDL) erzeugen (ohne Daten export)
- Rechtsklick auf das Schema
travel_blog→ SQL Scripts → SQL Generator. - Im Dialog:
Generate: Creation script completely- Speichern: Klick aufs Disketten-Symbol auf der rechten Seite (z. B.
travel_blog_ddl.sql).
- Datei speichern.
B. Daten exportieren
- Tabellen von
travel_blogöffnen (categories,post_category,posts,users) oder mehrere Tabellen im Database-Toolfenster markieren. - Rechtsklick → Import/Export → Export Data to File.
- Export-Format: Extractor auf SQL-Inserts setzen
- Dieses Vorgehen erzeugt ein SQL-File nur mit
INSERT INTO-Statements. Die Tabellenstruktur wird nicht erstellt. Mit der Option „Add table definition (DDL)“ können dieCREATE TABLE…Befehle zum Erstellen der Datenbankstruktur mit erzeugt werden. - Pro Tabelle eine Datei erzeugen, z. B.:
travel_blog_categories.sqltravel_blog_post_category.sqltravel_blog_posts.sqltravel_blog_users.sql
4) Variante B: Full Dump via mysqldump-Dialog (wie im Video)
In dieser Variante nutzt WebStorm das CLI-Tool mysqldump im Hintergrund.
4.1 Pfad zu mysqldump ermitteln
Damit WebStorm mysqldump aufrufen kann, muss es den vollständigen Pfad zur ausführbaren Datei kennen.
macOS
Spotlight(=Suche) öffnen → nach Terminal suchen und starten.- Befehl eingeben:
which mysqldump
- Den angezeigten Pfad (z. B.
/usr/local/mysql/bin/mysqldump) kopieren.
Windows
- Im Programme-Ordner nach MySQL suchen (z. B.
C:\Program Files\MySQL\MySQL Server 9.4\bin). - In diesem Ordner liegt die Datei
mysqldump.exe. - Den Ordnerpfad aus der Adressleiste kopieren und beim Einfügen in WebStorm mit
\mysqldump.exeergänzen.
Hinweis PATH-Variable
- In der CLI-Variante (ohne WebStorm) ist es praktisch, wenn die Programme
mysqlundmysqldumpüber die PATH-Variable gefunden werden. - macOS/Linux: PATH wird in der Shell-Konfiguration (z. B.
.zshrc) gesetzt. - Windows: PATH wird in den Umgebungsvariablen (Systemsteuerung → System → Erweiterte Systemeinstellungen → Umgebungsvariablen) gepflegt.
- Für diese Lerneinheit genügt: Wenn der Befehl im Terminal „not found“ meldet, ist meist der PATH nicht korrekt gesetzt.
4.2 Export mit ''mysqldump'' aus WebStorm
Beispiel: Datenbank travel_blog als Dump exportieren (wie im Video).
- Rechtsklick auf
travel_blog→ Import/Export → Export with 'mysqldump'. - Im Dialog:
- Path to executable: den zuvor ermittelten Pfad zu
mysqldumpeinfügen. - Output result to: Zielordner und Dateiname (z. B.
travel_blog_dump.sql) wählen. - Optionen für Struktur + Daten beibehalten (Standardwerte sind meist OK).
- Mit Run den Export starten.
- Ergebnis: Ein SQL-Dump-File (z. B.
travel_blog_dump.sql), das Struktur und Daten der Tabellen
categories, post_category, posts und users enthält.
5) Import eines SQL-Dumps (Wiederherstellung)
Sie können sowohl ein manuell erzeugtes SQL-Skript (Variante A) als auch einen mysqldump-Dump (Variante B) wieder einspielen.
5.1 Import per Run SQL Script (Variante A)
Ziel: Ein Skript wie travel_blog_full.sql aus Abschnitt 3 wieder importieren.
- Ggf. eine leere Datenbank
travel_blog_copyanlegen. - Rechtsklick auf die Data Source oder das gewünschte Schema → SQL Scripts → Run SQL Script.
- Datei auswählen (z. B.
travel_blog_full.sql) → Open. - Ausführung abwarten und Output kontrollieren.
- Wird die neu erstellte Datenbank nicht angezeigt → Rechtsklick auf die Data Source → Tools → Manage Shown Schemas… → Datenbank auswählen
5.2 Import (Restore) eines mysqldump-Files (Variante B)
Ziel: Dump travel_blog_dump.sql (aus Abschnitt 4) in eine neue Datenbank importieren.
- Leere Datenbank anlegen (z. B.
travel_blog_restore). - Rechtsklick auf diese Datenbank → Import/Export → Restore with 'mysql'….
- Im Dialog:
- Pfad zum Dump-File (z. B.
travel_blog_dump.sql) wählen. - Prüfen, dass die Verbindung zur richtigen MySQL-Instanz zeigt.
- Run ausführen, bis der Import abgeschlossen ist.
- Anschliessend im Database-Toolfenster auf Refresh klicken, damit alle Tabellen sichtbar werden.
Allgemeine Hinweise
- Enthält das Skript
DROP/CREATE DATABASE, immer prüfen, ob es auf die richtige Instanz angewendet wird. - Zeichensatz möglichst UTF-8 verwenden.
- Bei Fehlern:
- Reihenfolge der Tabellen (Fremdschlüssel) prüfen (z. B.
postsvorpost_category). - Ggf. Constraints temporär deaktivieren und später wieder aktivieren.
6) (Optional) Direkt über CLI: mysqldump & mysql
Für Server ohne WebStorm oder für Automatisierung (z. B. Cron-Jobs) werden Datenbanken häufig direkt im Terminal gesichert.
Export der Datenbank travel_blog
mysqldump -u BENUTZERNAME -p travel_blog > travel_blog_dump.sql
Import in eine (leere) Datenbank travel_blog_restore
mysql -u BENUTZERNAME -p travel_blog_restore < travel_blog_dump.sql
Voraussetzungen:
- Die Programme
mysqlundmysqldumpsind installiert. - Die PATH-Variable ist so gesetzt, dass beide Befehle im Terminal gefunden werden
(ansonsten den vollen Pfad voranstellen, z. B. C:\Program Files\MySQL\…\mysqldump.exe).
7) Fazit
- Für Backups und Migrationen ganzer Datenbanken sind SQL-Dumps ideal (Struktur + Daten in einem oder wenigen Files).
- In WebStorm können Sie sowohl ohne zusätzliche Tools (Variante A) als auch mit mysqldump/mysql (Variante B) arbeiten.
- Die reine CLI-Variante mit
mysqldumpundmysqlist der Standard auf Servern – setzt aber eine korrekt gesetzte PATH-Variable und etwas Terminal-Erfahrung voraus.


