Wird geladen...

Wir haben festgestellt, dass Ihre Browsersprache Chinesisch ist. Möchten Sie unsere chinesische Website besuchen? [ Schließen ]
Von: Emma

Typen von MySQL-Sicherungsdateien

Vor der Wiederherstellung müssen Sie wissen, um welchen Typ von Sicherungsdatei es sich handelt. MySQL-Sicherungen unterteilen sich in zwei Kategorien: logische Sicherungen (SQL-Skripte) und physische Sicherungen (Rohdatendateien). Die Verwendung einer falschen Wiederherstellungsmethode für Ihren Dateityp führt zu Fehlern – schlimmstenfalls zu unbemerkter Datenbeschädigung.

restore mysql database from files

Dateityp Erstellt mit Empfohlen für Wiederherstellungsmethode
.sql / .dump mysqldump, mysqlpump Migrationen, kleine bis mittlere Datenbanken MySQL-Befehlszeile
.sql.gz mysqldump + Komprimierung Große Datenbanken, Remote-Übertragungen Dekomprimieren, anschließend importieren
.ibd InnoDB-Engine Wiederherstellung einzelner Tabellen Manuelles Ersetzen von Dateien
.ibdata InnoDB-Engine Vollständige Wiederherstellung des InnoDB-Systemtablespaces Manuelles Ersetzen von Dateien
.frm MySQL 5.7 und älter Metadaten zur Tabellenstruktur Manuelles Ersetzen von Dateien
.MYD / .MYI MyISAM-Engine Wiederherstellung von MyISAM-Tabellendaten und Indizes Manuelles Ersetzen von Dateien

  • SQL-Dump-Dateien basieren auf Text. Sie enthalten SQL-Anweisungen (CREATE TABLE, INSERT INTO usw.), die Ihre Datenbank von Grund auf neu erstellen. Sie sind leicht lesbar, einfach übertragbar und zwischen verschiedenen MySQL-Versionen kompatibel.
  • Physische Datendateien sind die binären Rohdateien, die MySQL auf dem Datenträger speichert. Sie ermöglichen schnellere Wiederherstellungen bei großen Datensätzen, erfordern jedoch passende MySQL-Versionen und korrekte Dateiberechtigungen für einen fehlerfreien Betrieb.
Hinweis: Vermeiden Sie das Kopieren physischer Dateien zwischen stark abweichenden MySQL-Versionen (z. B. 5.7 auf 8.0) ohne vorherige Tests. Zwischen Hauptversionen haben sich die Schemaformate geändert, was Startfehler auslösen kann.

Wiederherstellen einer MySQL-Datenbank aus SQL-Dump-Dateien

SQL-Dump-Dateien sind das gängigste MySQL-Sicherungsformat. Sie sind portabel, menschenlesbar und mit den meisten MySQL-Versionen kompatibel – daher die Standardwahl für Migrationen und regelmäßige Wiederherstellungen.

Vor dem Start: Die meisten Dump-Dateien enthalten keine CREATE DATABASE-Anweisung. Falls die Zieldatenbank noch nicht existiert, erstellen Sie sie zuerst:

CREATE DATABASE IhrDatenbankname;

Wiederherstellung aus einer .sql-Datei

Nutzen Sie den Befehlszeilenclient mysql, um die Datei direkt an die Zieldatenbank zu übergeben:

mysql -u Benutzername -p Datenbankname < backup.sql

Sie werden zur Eingabe Ihres Passworts aufgefordert. MySQL führt anschließend alle Anweisungen der Datei aus und erstellt Tabellen sowie Daten neu.

Wiederherstellung aus einer .dump-Datei

Eine .dump-Datei ist strukturell identisch mit einer .sql-Datei – es handelt sich lediglich um eine andere Dateiendung. Der Befehl lautet genau gleich:

mysql -u Benutzername -p Datenbankname < backup.dump

Wiederherstellung aus komprimierter Sicherung (.sql.gz)

Große Datenbanken werden häufig als .sql.gz-Dateien gespeichert, um Speicherplatz zu sparen. Sie müssen die Datei nicht zuerst dekomprimieren – leiten Sie sie direkt in einem Schritt an MySQL weiter.

Linux / macOS:

gunzip < backup.sql.gz | mysql -u Benutzername -p Datenbankname

Windows (PowerShell):

cmd /c "gunzip -c backup.sql.gz | mysql -u Benutzername -p Datenbankname"

Tipp: Die direkte Weiterleitung erspart das Schreiben großer temporärer Dateien auf den Datenträger – das ist besonders wichtig bei begrenztem Speicherplatz.

Häufige Fehlerquellen

  • Zugriffsverweigerungsfehler: Stellen Sie sicher, dass der MySQL-Benutzer vor dem Import ALL PRIVILEGES für die Zieldatenbank besitzt.
  • Import bricht bei großen Zeilen ab: Bei der Wiederherstellung von Tabellen mit BLOBs oder langen Textfeldern erhöhen Sie den Wert von max_allowed_packet in der Datei my.cnf (Linux) oder my.ini (Windows).
  • Fremdschlüssel-Fehler: Falls Tabellen in falscher Reihenfolge importiert werden, fügen Sie am Anfang der SQL-Datei SET FOREIGN_KEY_CHECKS=0; und am Ende SET FOREIGN_KEY_CHECKS=1; ein.

Wiederherstellen einer MySQL-Datenbank aus physischen Datendateien

Physische Datendateien – teilweise auch „Flat Files“ oder „Kalt-Sicherungen“ genannt – sind die binären Rohdateien, mit denen MySQL Daten auf dem Datenträger ablegt. Die Wiederherstellung über diese Dateien ist schneller als das Einspielen eines SQL-Dumps, erfordert aber mehr Sorgfalt bei Dateiberechtigungen und Versionskompatibilität.

Einsatzszenarien für die Wiederherstellung mit physischen Dateien

Diese Methode eignet sich am besten für folgende Fälle:

  • Serverabsturz: Der MySQL-Dienst startet nicht und ein logischer Export ist nicht durchführbar.
  • Sehr große Datenbanken: Das Einspielen einer .sql-Datei bei einer mehrterabytegroßen Datenbank kann Tage dauern. Eine physische Wiederherstellung läuft deutlich schneller ab.
  • Vollständige Server- oder Snapshot-Wiederherstellung: Sie stellen eine Wiederherstellung aus einer vollständigen Systemsicherung oder einem Snapshot des Verzeichnisses /var/lib/mysql durch.

Schritte zur Wiederherstellung von physischen MySQL-Datendateien

Führen Sie diese Schritte nacheinander durch. Falsche Dateipfade oder Besitzerrechte sind die häufigsten Gründe für fehlgeschlagene physische Wiederherstellungen.

Schritt 1: MySQL-Dienst stoppen

Verschieben oder ersetzen Sie niemals Datendateien bei laufendem MySQL-Dienst. Dies riskiert unvollständige Schreibvorgänge und Dateibeschädigungen.

  • Linux: sudo systemctl stop mysql
  • Windows: Öffnen Sie services.msc und beenden Sie den Dienst MySQL.

Schritt 2: Ersetzen der Datenbankdateien

Kopieren Sie Ihre Sicherungsdateien in das MySQL-Datenverzeichnis:

  • Linux: /var/lib/mysql
  • Windows: C:\ProgramData\MySQL\MySQL Server X.X\Data
Hinweis: Bei der Wiederherstellung von InnoDB-Tabellen müssen die Dateien ibdata1 und ib_logfile* aus derselben Sicherung stammen wie Ihre .ibd-Dateien. Nicht übereinstimmende Systemdateien lösen Tablespace-ID-Fehler aus und verhindern den Start von MySQL.

Schritt 3: Anpassen der Dateiberechtigungen

Unter Linux muss der Benutzer mysql Eigentümer aller Dateien im Datenverzeichnis sein. Das ist der am häufigsten vergessene Schritt bei physischen Wiederherstellungen.

sudo chown -R mysql:mysql /var/lib/mysql

sudo chmod -R 750 /var/lib/mysql

Windows handhabt Dateiberechtigungen anders – solange das MySQL-Dienstkonto Lese- und Schreibzugriff auf den Datenordner hat, sind keine zusätzlichen Änderungen erforderlich.

Schritt 4: MySQL neu starten

Starten Sie den Dienst und achten Sie auf Fehlermeldungen.

  • Linux: sudo systemctl start mysql
  • Windows: Starten Sie den Dienst über services.msc.
Tipp: Prüfen Sie sofort nach dem Neustart das MySQL-Fehlerprotokoll – suchen Sie unter Windows nach der Datei hostname.err oder führen Sie unter Linux den Befehl sudo journalctl -u mysql aus. Jeder Tablespace-Konflikt oder Berechtigungsproblem wird hier angezeigt, bevor größere Probleme entstehen.

Überprüfen der wiederhergestellten MySQL-Datenbank

Eine Wiederherstellung ist erst abgeschlossen, wenn Sie die Datenintegrität bestätigt haben. Das Auslassen der Prüfung kann zu unbemerkten Ausfällen führen – die Datenbank scheint funktionsfähig, aber die Anwendung stürzt ab, wenn sie auf eine fehlende Tabelle oder beschädigte Zeile trifft.

Schritt 1: Prüfen der Datenbankstruktur

Stellen Sie sicher, dass alle erwarteten Tabellen erstellt wurden. Melden Sie sich in der MySQL-Shell an und führen Sie aus:

USE IhrDatenbankname;

SHOW TABLES;

Vergleichen Sie die Ausgabe mit Ihrem ursprünglichen Schema oder Ihrer Dokumentation. Fehlende Tabellen deuten auf einen abgebrochenen Import hin.

Schritt 2: Überprüfen der Zeilenanzahl pro Tabelle

Tabellen können vorhanden, aber leer sein, falls die Wiederherstellung vorzeitig abgebrochen wurde. Prüfen Sie die Zeilenanzahl Ihrer wichtigsten Tabellen:

SELECT COUNT(*) FROM users;

SELECT COUNT(*) FROM orders;

Tipp: Falls Sie bei Erstellung der Sicherung die Zeilenanzahlen protokolliert haben, vergleichen Sie diese nun. Eine geringere Anzahl weist meist auf einen unvollständigen Import oder einen max_allowed_packet-Fehler während der Wiederherstellung hin.

Schritt 3: Stichprobenprüfung der Datenintegrität

Führen Sie einige Abfragen auf kürzlich aktualisierte Datensätze durch, um die Lesbarkeit der Daten zu bestätigen:

SELECT * FROM orders ORDER BY created_at DESC LIMIT 5;

Achten Sie auf verstümmelten Text – dieser kann auf einen Zeichensatzkonflikt hindeuten, ein häufiges Problem bei Dateiübertragungen zwischen unterschiedlichen Betriebssystemen oder MySQL-Versionen.

Schritt 4: Testen der Anwendungsverbindung

Starten Sie Ihre Anwendung oder Ihren Webserver neu und führen Sie grundlegende Aktionen durch – Anmelden, Dashboard laden oder Berichte erstellen. Damit bestätigen Sie, dass die Anwendung die Datenbank erreichen und Abfragen erfolgreich ausführen kann.

Hinweis: Falls die Verbindung fehlschlägt, prüfen Sie die MySQL-Benutzerberechtigungen – insbesondere den Wert HOST. Ein Benutzer mit der Definition 'user'@'localhost' funktioniert nicht für Remote-Verbindungen; verwenden Sie 'user'@'%', falls die Anwendung von einem anderen Host aus zugreift.

Vereinfachte MySQL-Sicherung und -Wiederherstellung mit i2Backup

Manuelle Wiederherstellungsverfahren funktionieren – sie setzen jedoch voraus, dass eine saubere, vollständige Sicherungsdatei verfügbar ist, wenn Sie sie benötigen. In der Praxis werden Ad-hoc-Sicherungen schnell vergessen, schwer prüfbar und oft unvollständig, wenn ein echter Wiederherstellungsfall eintritt. Eine spezielle Sicherungslösung beseitigt diese Unsicherheit, indem sie den gesamten Ablauf von der Zeitplanung bis zur Wiederherstellung automatisiert.

i2Backup ist eine Unternehmens-Sicherungsplattform, mit der Sie MySQL-Datenbanken über eine grafische Webkonsole sichern und wiederherstellen können. Sie unterstützt physische Server, virtuelle Maschinen und Cloud-Umgebungen – alles zentral verwaltet an einem Ort.

Kernfunktionen von i2Backup

  • Geplante und Echtzeit-Datenbanksicherungen: Konfigurieren Sie Sicherungsaufträge mit beliebigen Zeitintervallen – stündlich, täglich, wöchentlich – oder erfassen Sie Änderungen kontinuierlich für ein nahezu null RPO.
  • Zentralisierte webbasierte Verwaltung: Eine einzige browserbasierte Konsole zur Planung von Sicherungen, Überwachung des Status und Verwaltung von Wiederherstellungsaufträgen – keine zusätzliche Software erforderlich.
  • Erfassung von Redo- und Archivlogs: i2Backup zeichnet kontinuierlich MySQL-Redo- und Archivlogs auf und ermöglicht eine genaue Point-in-Time-Wiederherstellung zu jedem beliebigen Zeitpunkt vor einem Ausfall.
  • Mehrere Sicherungsziele: Speichern Sie Sicherungen gleichzeitig auf lokalen Speichern, NAS-Geräten oder Cloud-Zielen, um Single Points of Failure auszuschließen.
  • Breite Plattformkompatibilität: Unterstützt physische Server, VMware, Hyper-V und weitere gängige Virtualisierungsplattformen – keine separaten Tools für unterschiedliche Umgebungen notwendig.

Die Schritte in diesem Leitfaden geben Ihnen die volle Kontrolle über manuelle MySQL-Wiederherstellungen. Eine zuverlässige Wiederherstellung beginnt jedoch lange vor einem Ausfall – mit konsistenten, geprüften Sicherungen. i2Backup automatisiert diese Grundlage, sodass im Notfall die Wiederherstellung unkompliziert statt hektisch verläuft.

60-tägige kostenlose Testversion

Häufig gestellte Fragen

F1: Wie stelle ich eine MySQL-Datenbank aus Datendateien unter Windows wieder her?

Stoppen Sie den Dienst MySQL über services.msc. Kopieren Sie Ihre .ibd-, ibdata1– und .frm-Dateien in das Verzeichnis C:\ProgramData\MySQL\MySQL Server X.X\Data. Stellen Sie sicher, dass das MySQL-Dienstkonto uneingeschränkte Lese- und Schreibrechte auf die neuen Dateien hat, anschließend starten Sie den Dienst neu.

 

F2: Wie stelle ich MySQL mithilfe von Binärlogs wieder her?

Nutzen Sie das Dienstprogramm mysqlbinlog, um die Logdatei in SQL-Anweisungen umzuwandeln und an MySQL weiterzuleiten:

mysqlbinlog binlog.000001 | mysql -u Benutzername -p

Die Wiederherstellung über Binärlogs erfolgt ergänzend zu einer vollständigen Sicherung – stellen Sie immer zuerst die Basissicherung wieder her, bevor Sie die Binärlogs abspielen, um alle Änderungen bis zum Ausfallzeitpunkt wiederherzustellen.

 

F3: Wie stelle ich eine MySQL-Datenbank mit Dateien aus dem Datenordner wieder her?

Fahren Sie MySQL herunter, verschieben Sie anschließend den Datenbankordner in das Verzeichnis data. Stellen Sie sicher, dass die Datei ibdata1 aus derselben Sicherung stammt wie Ihre Tabellendateien. Unter Linux setzen Sie vor dem Neustart die Dateibesitzerrechte mit chown -R mysql:mysql zurück.

 

F4: Kann ich eine einzelne Tabelle aus einer .sql-Dump-Datei wiederherstellen?

Spielen Sie den vollständigen Dump zunächst in eine temporäre Zwischen-Datenbank ein, exportieren Sie anschließend nur die benötigte Tabelle:

mysqldump -u Benutzername -p ZwischenDB Tabellenname > einzelne_tabelle.sql

mysql -u Benutzername -p ZielDB < einzelne_tabelle.sql

 

F5: Was tun bei dem Fehler „Table already exists“?

Löschen und erstellen Sie die Zieldatenbank vor dem Import neu:

DROP DATABASE IhrDatenbankname;

CREATE DATABASE IhrDatenbankname;

Fazit

Die Wiederherstellung einer MySQL-Datenbank hängt vor allem von der Kenntnis Ihres Sicherungstyps ab. SQL-Dump-Dateien lassen sich unkompliziert über die Befehlszeile mysql einspielen. Physische Datendateien sind schneller bei großen Datensätzen, erfordern aber sorgfältige Prüfung von Dateiberechtigungen und konsistenten Tablespaces. In jedem Fall überprüfen Sie die Wiederherstellung, bevor Sie Ihre Anwendung wieder auf die Datenbank umleiten.

Der beste Zeitpunkt zum Testen Ihres Wiederherstellungsablaufs ist vor einem tatsächlichen Ausfall. Ziehen Sie eine spezielle Lösung wie i2Backup in Betracht, um Ihre MySQL-Sicherungen zu automatisieren und stets einen geprüften, funktionsfähigen Wiederherstellungspunkt bereitzuhalten.

Keine Kurzbiografie vorhanden

Weitere verwandte Artikel

[Schritt‑für‑Schritt‑Anleitung] MySQL zu PostgreSQL migrieren
Die Migration von MySQL zu PostgreSQL eröffnet erweiterte Abfragefunktionen, Skalierbarkeit und ACID‑Konformität. Diese Schritt‑für‑Schritt‑Anleitung erläutert die entscheidende Planung, vier bewährte Migrationsverfahren sowie Nachmigrationsschritte für einen reibungslosen und fehlerfreien Übergang.
Artikel lesen
Wie man eine MySQL‑Datenbank mit 8 bewährten Methoden sichert
Das Sichern von MySQL‑Datenbanken ist unerlässlich, um Datenverluste durch Hardwareausfälle, Ransomware oder menschliche Fehler zu vermeiden. Dieser Leitfaden behandelt alle Sicherungsarten (Voll‑/Inkrementell‑/Hot‑/Cold‑Sicherung), acht praxisnahe Methoden sowie bewährte Expertenpraktiken zum Aufbau einer zuverlässigen Sicherungsstrategie.
Artikel lesen
Wie man eine Datenbank in SQL Server, MySQL und PostgreSQL löscht
Der Befehl DROP DATABASE ist einer der unumkehrbarsten SQL-Vorgänge, wird jedoch oft ohne gründliche Überlegung ausgeführt. Diese Anleitung erläutert die korrekte Syntax, wesentliche Unterschiede zwischen MySQL, PostgreSQL und SQL Server sowie Sicherheitsmaßnahmen zum Schutz Ihrer Daten.
Artikel lesen
Export von SQL‑Tabellendaten nach Excel: Schritt‑für‑Schritt‑Anleitung
Müssen Sie SQL‑Tabellendaten schnell und genau nach Excel exportieren? Diese Anleitung führt Sie durch vier praktische Methoden – von SSMS bis Python – damit Sie die für Ihren Arbeitsablauf am besten geeignete Vorgehensweise auswählen können.
Artikel lesen
Inhaltsverzeichnis:
Bleiben Sie über die neuesten Tipps informiert
Abonnieren Sie unseren Newsletter für aktuelle Einblicke, Neuigkeiten und exklusive Inhalte. Sie können sich jederzeit abmelden.
Abonnieren
Bereit, Ihre Unternehmensdatensicherheit zu verbessern?
Starten Sie eine 60-tägige Testversion oder sehen Sie sich eine Demo an, um zu erfahren, wie Info2soft Unternehmensdaten schützt.
Bitte füllen Sie das Formular aus und senden Sie es ab – unser Kundenservice wird sich in Kürze bei Ihnen melden.
Mit dem Absenden dieses Formulars bestätige ich, dass ich die Datenschutzerklärung.
{{ isSubmitting ? 'Wird gesendet...' : 'Absenden' }}