Sichern und Wiederherstellen von MySQL/MariaDB-Datenbanken über SSH
Bitte verwenden sie die "Drucken" Funktion am Seitenende, um ein PDF zu erstellen.
Für Webhosting Linux-Pakete
In diesem Artikel erfahren Sie, wie Sie MySQL- und MariaDB-Datenbanken über Ihren Shell-Zugang sichern und wiederherstellen können. Sie nutzen dafür die Kommandozeilen-Programme mysqldump und mysql, die bereits standardmäßig in Ihren Linux-Webhosting-Paketen und auf Managed Servern installiert sind.
Hinweis
Die hier beschriebenen Verfahren eignen sich auch für große Datenbanken mit Datenmengen von mehr als 1 GB (Gigabyte).
Voraussetzungen
Sie benötigen ein Webhosting-Paket mit Shell-Zugang (oder einen Managed Server).
Sie benötigen die Zugangsdaten zu Ihrer Datenbank (Hostname, Datenbankname, Benutzername, Passwort).
Für eine Wiederherstellung müssen die Daten in Form einer Sicherungsdatei im SQL-Format (SQL-Dump) zur Verfügung stehen.
Grundkenntnisse im Umgang mit der Linux-Shell werden empfohlen.
Datenbank mit mysqldump sichern
Das Tool mysqldump erstellt eine Sicherungsdatei, die SQL-Befehle enthält, mit denen die Datenbankstruktur rekonstruiert und die Daten wiederhergestellt werden können. Die so erstellte Datensicherung kann dann einfach mit dem MySQL-Client wieder in eine Datenbank importiert werden, um die Daten wiederherzustellen.
Um Ihre Datenbank mit mysqldump zu sichern:
Stellen Sie eine SSH-Verbindung zu Ihrem Webspace her. Führen Sie dann die folgenden Schritte im Terminalfenster aus.
Um eine vollständige Datensicherung Ihrer Datenbank zu erstellen, führen Sie den Befehl mysqldump nach dem folgenden Schema aus:
mysqldump --no-tablespaces --host=HOSTNAME --user=BENUTZERNAME --password=PASSWORT DATENBANKNAME > DATEI
Ersetzen Sie die in Großbuchstaben geschriebenen Platzhalter durch die Zugangsdaten der Datenbank, die Sie sichern möchten. Geben Sie auch den gewünschten Namen für Ihre Sicherungsdatei ein.
Beispiel:
mysqldump --no-tablespaces --host=db1234567890.hosting-data.io --user=dbu654321 --password=2gCjmnrmLkxnSefw dbs7654321 > dbs7654321_dump_29-04-2024.sql
Ihre Sicherungsdatei wird erstellt und in dem Verzeichnis gespeichert, in dem Sie den Befehl mysqldump ausgeführt haben. Je nach Datenmenge kann dies einige Zeit in Anspruch nehmen. Anschließend können Sie die Datei herunterladen und an einem sicheren Ort aufbewahren.
Achtung
Schließen Sie das Terminalfenster erst, wenn die Sicherung abgeschlossen ist. Andernfalls wird der Vorgang abgebrochen.
Datenbank mit dem MySQL-Client wiederherstellen
Laden Sie die Sicherungsdatei mit einem FTP-Programm auf Ihren Webspace hoch.
Stellen Sie eine SSH-Verbindung zu Ihrem Webspace her. Führen Sie dann die nachfolgenden Schritte im Terminalfenster aus.
Wenn sich Ihre Sicherungsdatei in einem Verzeichnis befindet, wechseln Sie in das entsprechende Verzeichnis.
Um Ihre Daten wiederherzustellen, führen Sie den Befehl mysql nach folgendem Schema aus:
mysql --host=HOSTNAME --user=BENUTZERNAME --password=PASSWORT DATENBANK < DATEINAME
Ersetzen Sie die in Großbuchstaben geschriebenen Platzhalter durch die Zugangsdaten der Datenbank, in der Sie die Daten wiederherstellen möchten.
Beispiel:
mysql --host=db1234567890.hosting-data.io --user=dbu654321 --password=2gCjmnrmLkxnSefw dbs7654321 < dbs7654321_dump_29-04-2024.sql
Sicherungsdatei liegt im gzip-Format (.gz) vor
Wenn die Datei im gzip-Format gepackt ist, kombinieren Sie den Befehl mysql mit dem Befehl gunzip nach folgendem Schema:
gunzip -c DATEINAME | mysql --host=HOSTNAME --user=BENUTZERNAME --password=PASSWORT DATENBANK
Beispiel:
gunzip -c dbs7654321_dump_29-04-2024.sql.gz | mysql --host=db1234567890.hosting-data.io --user=dbu654321 --password=2gCjmnrmLkxnSefw dbs7654321
Problemlösung
Nachfolgend finden Sie Lösungsvorschläge für typische Fehler, die bei der Durchführung der Anleitungsschritte auftreten können.
Verwendung von Sonderzeichen
Wenn Ihre Dateinamen, Passwörter oder Benutzernamen Sonderzeichen enthalten, müssen Sie diese im mysqldump- oder mysql-Befehl in '-Zeichen (Apostroph) einschließen.
Beispiel: mysqldump […] --password='%gCjmnrmLk!xnSefw'
Fehlermeldungen: mysqldump
- mysqldump: Got error: 1044: "Access denied for user [...] to database [...]
Dieser Fehler tritt beispielsweise auf, wenn der angegebene Datenbankname nicht zugeordnet werden kann.
Lösungsvorschlag: Überprüfen Sie, ob der Datenbankname korrekt ist. Achten Sie dabei auf Groß- und Kleinschreibung. - mysqldump: Got error: 1045: "Access denied for user […]
Dieser Fehler tritt auf, wenn ein Benutzer versucht, sich mit ungültigen Zugangsdaten (Benutzername und/oder Passwort) bei MySQL anzumelden.
Lösungsvorschlag: Überprüfen Sie, ob der Benutzername und das Passwort korrekt sind. Achten Sie dabei auf Groß- und Kleinschreibung. - mysqldump: Got error: 2005: "Unknown MySQL server host [...]
Dieser Fehler tritt auf, wenn MySQL keine Verbindung zum angegebenen Datenbankserver aufbauen kann.
Lösungsvorschlag: Überprüfen Sie den Hostnamen auf Tippfehler.
Fehlermeldungen: MySQL-Client
- ERROR 1044 (42000) at line X: Access denied for user [...]
Dieser Fehler tritt auf, wenn ein Benutzer versucht, eine Aktion auszuführen, für die er keine Berechtigung hat. Je nachdem, wie die Sicherungsdatei erstellt wurde, kann sie z.B. auch die Anweisung enthalten, eine Datenbank zu erstellen, was hier nicht möglich, aber auch nicht notwendig ist. Was in diesem Fall zu tun ist, ist im Artikel 1044 - Access denied"-Fehler beim Import einer MySQL-Datenbank behebenbeschrieben. - ERROR 1045 (28000): Access denied for user [...]
Dieser Fehler tritt auf, wenn ein Benutzer versucht, sich mit ungültigen Zugangsdaten (Benutzername und/oder Passwort) bei MySQL anzumelden.
Lösungsvorschlag: Überprüfen Sie, ob der Benutzername und das Passwort korrekt sind. Achten Sie dabei auf Groß- und Kleinschreibung. - ERROR 2005 (HY000): Unknown MySQL server host [...]
Dieser Fehler tritt auf, wenn MySQL keine Verbindung zum angegebenen Datenbankserver aufbauen kann.
Lösungsvorschlag:: Überprüfen Sie den Hostnamen auf Tippfehler.
Mysql-Fehler ignorieren
Sie können den MySQL-Client mit dem Parameter -force anweisen, Fehler zu ignorieren. Das bedeutet, dass selbst wenn Fehler auftreten, der Importvorgang nicht angehalten wird. Der Client versucht stattdessen, mit den nächsten Befehlen oder Datensätzen fortzufahren.
Beispiel:
mysql –force --host=db1234567890.hosting-data.io --user=dbu654321 --password=2gCjmnrmLkxnSefw dbs7654321 < dbs7654321_dump_29-04-2024.sql
Achtung
Da Fehler ignoriert werden, kann die Verwendung von -force zu Problemen mit der Datenintegrität führen. Einige Datensätze können fehlerhaft sein oder fehlen, was die Gesamtqualität der Datenbank beeinträchtigen kann. Es wird empfohlen, nach dem Import Validierungen durchzuführen, um sicherzustellen, dass alle Daten korrekt importiert wurden.