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 Gigabyte (GB).

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:

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

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 Berechtigungen hat. Lesen Sie dazu bitte den Artikel 1044 - Access denied"-Fehler beim Import einer MySQL-Datenbank beheben.
  • 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.