So sichern Sie Ihre WordPress Datenbank

Avatar of Andy Adams
Von Andy Adams am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

WordPress speichert eine *Menge* wichtiger Dinge in der Datenbank. Sie wissen wahrscheinlich, dass Ihre eigentlichen *Inhalte* in der Datenbank gespeichert sind: Blogbeiträge, Seiten, benutzerdefinierte Post-Typen, Kommentare usw.

Aber die Datenbank speichert mehr als nur Inhalte. *Viel* mehr. Nur ein paar Beispiele:

  • Plugin-Einstellungen
  • Theme-Einstellungen
  • Widgets & Seitenleisten-Inhalt
  • Layouts & Vorlagen (wenn Sie ein schickes Drag-and-Drop-Theme verwenden)
  • Cron-Zeitpläne
  • Benutzerkonten
  • Menüs

Heiliger Bimbam – diesen Kram dürfen Sie nicht verlieren! Egal, ob Ihre Website groß, klein, live oder in Entwicklung ist – Backups sind für *jede WordPress-Website*.

Wenn Sie ein WordPress-Designer oder -Entwickler sind, denken Sie darüber nach, wie viel Sorgfalt Sie darauf verwenden, den PHP-, HTML- oder CSS-Code, den Sie schreiben, zu speichern. Wahrscheinlich verwenden Sie Versionskontrolle. Zumindest verlassen Sie sich nicht auf eine einzige Kopie Ihres Codes – das wäre riskant! Nehmen wir uns also die gleiche Sorgfalt für die weitaus *wichtigere* Datenbank vor.

WordPress-Datenbank-Backups können auf vielfältige Weise erstellt werden, von „hochtechnisch“ bis „super einfach“. Wie (und wie oft) Sie Backups erstellen, hängt von der Wichtigkeit der Website ab, an der Sie arbeiten.

Lassen Sie uns einige der Methoden durchgehen, mit denen Sie Ihre WordPress-Datenbank sichern können.

Sicherung mit mysqldump

Die Verwendung der Befehlszeile für Backups ist ein manueller Prozess und kann etwas einschüchternd sein, wenn Sie sich mit der Befehlszeile nicht wohlfühlen. Aber selbst wenn Sie Angst vor der Shell haben, ist das Sichern mit mysqldump nicht allzu schwierig. Wenn Sie sich damit nicht wohlfühlen, überspringen Sie den nächsten Abschnitt zur Verwendung von phpMyAdmin für Backups.

  • Empfohlen für: Entwicklung & nicht kritische Websites
  • Schwierigkeitsgrad: Ziemlich schwierig
  • Kosten: Kostenlos

mysqldump ist ein passend benanntes Programm zum Exportieren einer MySQL-Datenbank. Keine Überraschungen hier.

Mit den Standardeinstellungen erstellt mysqldump eine .sql-Datei, die nur eine Liste von SQL-Befehlen ist – CREATE TABLEs, INSERTs usw.

Wenn Sie jeden der SQL-Befehle in der von mysqldump generierten .sql-Datei ausführen würden, hätten Sie eine exakte Kopie Ihrer WordPress-Datenbank – genau das, was wir erreichen wollen!

Um mysqldump auszuführen, müssen Sie auf die Befehlszeile Ihres Servers zugreifen.

ssh [email protected]

Einige Software kann Ihnen helfen, sich über SSH mit Ihrem Server zu verbinden. Hier ist der Einrichtungsbildschirm dafür in Coda

Um mysqldump auszuführen, benötigen Sie einige Dinge zur Hand:

  1. Der Name der Datenbank, die Sie sichern
  2. Ein Datenbankbenutzer mit Zugriff auf diese Datenbank
  3. Das Passwort für diesen Benutzer

Wenn Sie diese nicht auswendig wissen, können Sie die Datei wp-config.php für Ihre WordPress-Website konsultieren. Die Konfigurationswerte sehen dann etwa so aus:

/** The name of the database for WordPress */
define('DB_NAME', 'my_db_name');

/** MySQL database username */
define('DB_USER', 'my_db_user');

/** MySQL database password */
define('DB_PASSWORD', 'my_db_password');

Mit unseren Datenbankinformationen können wir den Befehl mysqldump ausführen, der wie folgt aussieht:

mysqldump -u my_db_user -p my_db_name > /path/to/save/backup_file.sql

Wenn Sie mit der Terminologie der Befehlszeile nicht vertraut sind, werden die „mit Bindestrich gefolgt von Buchstaben“ als „Flags“ bezeichnet. Flags geben dem Befehlszeilen-Dienstprogramm (in diesem Fall mysqldump) die Antworten, die es benötigt, um korrekt zu laufen.

Das -u-Flag teilt mysqldump mit, dass my_db_user zum Sichern unserer Datenbank verwendet werden soll. Für unsere Zwecke müssen wir nur sicherstellen, dass my_db_user die Datenbank, die wir sichern möchten, lesen darf.

Das -p-Flag teilt mysqldump mit, dass my_db_user ein Passwort hat und wir dieses Passwort angeben werden. Beachten Sie, dass es möglich ist, das Passwort direkt in der Befehlszeile einzugeben, wie folgt:

mysqldump -u my_db_user -pmy_db_password my_db_name > /path/to/save/backup_file.sql

Vorsicht: Die Eingabe des Passworts auf diese Weise gilt als schlechte Sicherheitspraxis, da sie das Passwort für Programme sichtbar macht, die es nicht wissen müssen. Wir zeigen Ihnen diese Verwendung des -p-Flags nur zur Vollständigkeit, damit Sie wissen, wie jedes dieser Einzelteile funktioniert.

Das > nach my_db_name wird als „Output-Umleitungssymbol“ bezeichnet. Dies ist nur eine schicke Art, mysqldump anzuweisen, die Backup-Daten an eine bestimmte Datei zu senden.

Um die Ausgabeumleitung besser zu verstehen, sehen wir uns an, was passieren würde, wenn wir das > am Ende unseres Befehls weglassen würden. Dies wird nach Ausführung des Befehls ohne Ausgabeumleitung auf dem Bildschirm angezeigt:

-- MySQL dump 10.13  Distrib 5.5.40, for debian-linux-gnu (x86_64)
--
-- Host: localhost    Database: my_db_name
-- ------------------------------------------------------
-- Server version   5.5.40-0ubuntu0.14.04.1

/* ...snip a zillion SQL commands... */

/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2014-12-31 20:41:58

Wow! Unsere gesamte Datenbank-Sicherung wurde auf dem Bildschirm ausgegeben!

Durch die Verwendung des >-Operators können wir mysqldump mitteilen, wo unser Backup gespeichert werden soll, damit wir es herunterladen und verwenden können. In diesem Fall weisen wir mysqldump an, unser Backup hier in der Datei /path/to/save/backup_file.sql zu speichern.

Wenn sich Ihre Datenbank zufällig nicht auf localhost befindet (z. B. wenn Sie einen separaten MySQL-Server haben, der Ihre Datenbank hostet), können Sie zwei zusätzliche Flags verwenden, um mysqldump mitzuteilen, wo es suchen soll:

  • -h your.dbserver.com weist mysqldump an, sich über die URL your.dbserver.com zu verbinden. Sie können auch IP-Adressen verwenden.
  • -P 1234 weist mysqldump an, Port 1234 zu verwenden – offensichtlich ändern Sie dies, wenn Ihr Datenbankserver einen anderen Port verwendet.

Nachdem Sie mysqldump ausgeführt haben, finden Sie Ihre Backup-Datei an dem von Ihnen angegebenen Ort (in unserem Beispiel /path/to/save/backup_file.sql). Der einfachste Weg, sie zu erhalten, ist die Verwendung Ihres bevorzugten FTP-Clients oder das sichere Kopieren von der (lokalen) Befehlszeile.

scp [email protected]:backup_file.sql .

Wiederherstellung aus einer .sql-Datei

Sobald Sie eine .sql-Datei zur Hand haben, können Sie Ihre Datenbank mit dem Befehlszeilen-Tool mysql wiederherstellen.

Hier ist der Befehl, den Sie verwenden werden:

mysql -u my_db_user -p my_db_name < /path/to/save/backup_file.sql

Sie werden feststellen, dass dies dem mysqldump-Befehl, den wir zum Erstellen unseres Backups verwendet haben, sehr ähnlich sieht – mit ein paar Änderungen:

  1. Der erste Befehl lautet mysql anstelle von mysqldump.
  2. Das Symbol für die Ausgabeumleitung (>) wurde durch ein Symbol für die *Eingabeumleitung* (<) ersetzt. Dies weist unseren Befehl an, die .sql-Datei als Eingabe für das mysql-Tool zu lesen.

Dies tut nichts weiter, als die SQL-Befehle in unserer .sql-Datei nacheinander auszuführen, um die Datenbank wiederherzustellen/in den Zustand zurückzuversetzen, in dem sie sich zum Zeitpunkt der Sicherung befand.

Beachten Sie, dass mysql mit jeder .sql-Datei verwendet werden kann – nicht nur mit denen, die Sie mit mysqldump generieren.

Lokal können Sie auch kostenlose Software wie Sequel Pro verwenden, um mit Ihrer Datenbank zu arbeiten, einschließlich der Ausführung von .sql-Dateien.

Sicherung mit phpMyAdmin

phpMyAdmin ist eine Software, mit der Sie Ihre MySQL-Datenbank anzeigen, bearbeiten und (wichtig für uns) *exportieren* können.

  • Empfohlen für: Entwicklung & nicht kritische Websites
  • Schwierigkeitsgrad: Nicht allzu schlimm
  • Kosten: Kostenlos

Viele Webhoster bieten den Zugriff auf phpMyAdmin als Teil regulärer Hosting-Pläne an. Wenn Sie sich im Dashboard Ihres Hosting-Kontos umsehen, finden Sie möglicherweise einen Link zu einem phpMyAdmin-Login-Bildschirm, der wie folgt aussieht:

Der Benutzername und das Passwort sind normalerweise dieselbe Kombination, die Sie in Ihrer wp-config.php-Datei finden (siehe oben).

Sobald Sie angemeldet sind, können Sie die zu sichernde Datenbank auf der linken Seite auswählen.

Datenbank zur Sicherung auswählen

Als Nächstes wählen Sie den Tab „Export“.

Standardmäßig verwendet phpMyAdmin eine „Schnelle“-Option, die für die meisten Anwendungsfälle perfekt ist. Wenn Sie sich abenteuerlustig fühlen, gibt es im Abschnitt „Benutzerdefiniert“ eine ganze Reihe von Optionen, die Sie anpassen können.

Klicken Sie auf „Go“, um den Export und Download Ihrer Datenbank zu starten.

Wenn der Download abgeschlossen ist, haben Sie eine vollständige Sicherung Ihrer WordPress-Datenbank.

Vorsicht: Wenn Sie eine große Datenbank haben oder Ihre phpMyAdmin so konfiguriert ist, dass die erlaubte Zeit für einen Download begrenzt ist, ist Ihre Backup-Datei möglicherweise unvollständig.

Der einfachste Weg, um festzustellen, ob Ihr Backup erfolgreich exportiert wurde, ist, es zu öffnen und ganz nach unten zu scrollen. Die letzten Zeilen sollten einige SQL-Anweisungen enthalten, die etwa so aussehen:

--
-- AUTO_INCREMENT for table `wp_users`
--
ALTER TABLE `wp_users`
  MODIFY `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=2;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Wenn Sie etwas anderes sehen, ist Ihr Backup möglicherweise unvollständig. Wenn Ihr Export abgelaufen ist, sehen Sie möglicherweise einige Fehlermeldungen am Ende Ihrer Backup-Datei. Oder Ihr Backup wird einfach an einem beliebigen Punkt abgebrochen.

Wenn Ihre Backups über phpMyAdmin unvollständig sind, müssen Sie möglicherweise Ihre Exporteinstellungen mit den „Benutzerdefinierten“-Optionen anpassen oder Ihren Hoster fragen, ob er das Zeitlimit für PHP-Anfragen erhöhen kann.

Wenn Ihr Hoster nicht hilft oder Sie sich einfach nicht mit den Eigenheiten von PHP auseinandersetzen möchten, lesen Sie weiter, um einige andere (und einfachere) Wege kennenzulernen, Ihre WordPress-Datenbank zu sichern.

Wiederherstellung mit phpMyAdmin

Es liegt auf der Hand, dass Sie, wenn Sie eine Datenbank mit phpMyAdmin *exportieren* können, auch eine *importieren* können. Um eine Datenbank-Sicherung wiederherzustellen, müssen Sie nur zum Tab „Import“ navigieren.

Laden Sie Ihre Backup-Datei (.sql oder .sql.zip, egal) über das Upload-Tool hoch und klicken Sie auf „Go“, um die Sicherung wiederherzustellen.

Vorsicht: Wenn Sie eine große Datenbank haben oder Ihre phpMyAdmin so konfiguriert ist, dass die erlaubte Zeit für die Skriptausführung begrenzt ist, wird Ihre Wiederherstellung möglicherweise nicht abgeschlossen. Wenn Sie auf Timeout-Probleme stoßen, sollten Sie versuchen, die phpMyAdmin-Einstellungen anzupassen oder eine andere Methode zur Wiederherstellung Ihrer Datenbank zu verwenden (wie das in der vorherigen Sektion erwähnte mysql-Befehlszeilen-Tool).

Sicherung durch den Webhoster

Zusätzlich zum Bereitstellen des Zugriffs auf phpMyAdmin bieten viele Hoster reguläre Backup-Dienste für MySQL-Datenbanken an. Der Hoster erstellt „Schnappschüsse“ Ihrer Datenbank in bestimmten Intervallen – manchmal wöchentlich, täglich oder stündlich. Ihr Hoster stellt möglicherweise webbasierten Zugriff bereit, um die Schnappschüsse Ihrer Datenbank herunterzuladen.

  • Empfohlen für: Jede Website
  • Schwierigkeitsgrad: Einfach
  • Kosten: Variiert. Manche Hoster sind kostenlos, andere haben eine monatliche Gebühr.

Die Verfügbarkeit variiert von Hoster zu Hoster und von Hosting-Plan zu Hosting-Plan. Wenn Sie auf einem Shared-Hosting-Plan sind, der weniger als 10 US-Dollar pro Monat kostet, sind Backups wahrscheinlich nicht enthalten.

Die Kosten und der Prozess zur Einrichtung automatisierter Backups sind für jeden Hoster unterschiedlich. Hier sind weitere Details zu einigen der gängigeren WordPress-Hoster:

Sicherung per Plugin

Eine der einfachsten Möglichkeiten, Ihre WordPress-Website zu sichern, ist die Verwendung eines Plugins.

  • Empfohlen für: Jede Website
  • Schwierigkeitsgrad: Einfach
  • Kosten: Variiert, je nach benötigten Funktionen. Kostenlose Plugins können grundlegende Backups durchführen. Kostenpflichtige Plugins bieten praktische Funktionen.

Es gibt eine Fülle von Backup-Plugins, aber eines, das für Entwickler besonders interessant ist, ist WP DB Migrate und seine kostenpflichtige Version WP DB Migrate Pro.

Für einfache Backups ist die kostenlose Version mehr als ausreichend. Hier erfahren Sie, wie Sie eine Kopie Ihrer Datenbank mit WP DB Migrate erhalten:

  1. Installieren Sie das WP DB Migrate Plugin über die integrierte WordPress-Plugin-Suche & Installationsschnittstelle. Stellen Sie sicher, dass Sie es nach der Installation aktivieren!
  2. Gehen Sie in Ihrem Dashboard zu Tools → WP DB Migrate.
  3. Wählen Sie „Als .zip herunterladen“. Wenn Sie einfach nur eine Kopie der Datenbank zur sicheren Aufbewahrung herunterladen möchten, können Sie die Such-/Ersetzungsfelder entfernen.
  4. Klicken Sie auf „Migrate“ und Sie erhalten eine Kopie Ihrer Datenbank, die auf Ihrem Computer gespeichert ist.

Wenn Sie Entwickler sind, lohnt es sich, einen Blick auf die Pro-Version von WP DB Migrate zu werfen. Mit Pro können Sie die Datenbanken von zwei WordPress-Websites synchronisieren.

Zum Beispiel: Nehmen wir an, Sie arbeiten an einer Live-Website und benötigen eine Kopie der Datenbank für Entwicklungsarbeiten. Mit WP Migrate DB Pro können Sie einfach die Live-Version auf Ihre Entwicklungs-Website synchronisieren, indem Sie die Benutzeroberfläche des Plugins verwenden. Wenn Sie viel WordPress-Arbeit leisten, wird dies die Art und Weise verändern, wie Sie entwickeln.

Ein weiteres bemerkenswertes Backup-Plugin ist BackupBuddy von iThemes. Während WP DB Migrate viele Funktionen für Entwickler bietet, glänzt BackupBuddy für „normale“ WordPress-Benutzer. BackupBuddy kann geplante Backups durchführen (ähnlich wie Ihr Webhoster) und die Backups an verschiedene Orte senden, z. B. E-Mail, FTP, DropBox, AWS und andere.

Es gibt *viele* Backup-Plugins im WordPress.org-Repository und neben BackupBuddy und WP DB Migrate Pro auch zahlreiche Premium-Optionen.

Verwendung eines Backup-Dienstes

Schließlich schauen wir uns an, wie Sie Ihre WordPress-Datenbank mit einem Backup-Dienst sichern können.

Die Verwendung eines Backup-Dienstes ist der einfachste Weg, um Backups Ihrer Website zu erstellen. Naturgemäß ist es auch der teuerste.

  • Empfohlen für: Live-/Produktions-Websites
  • Schwierigkeitsgrad: Am einfachsten
  • Kosten: Monatliche Gebühr, von 5 bis 29 US-Dollar pro Monat.

So funktioniert es

  1. Zahlen Sie eine monatliche (oder jährliche) Gebühr.
  2. Stellen Sie dem Dienst Zugriff auf Ihre Website zur Verfügung. Für einige installieren Sie ein Plugin. Für andere geben Sie Anmeldeinformationen für Ihren Hoster ein.
  3. Backups werden regelmäßig automatisch in der Cloud gespeichert. Oder das Backup erfolgt in Echtzeit, wie im Fall von VaultPress.

Hier sind einige WordPress/MySQL-Backup-Dienste:

Backup-Dienste erfordern nur minimale Einrichtung, sichern Ihre Website ständig, beinhalten Fehlerprüfungen und (im Fall von VaultPress) bieten Sicherheitsüberwachung für Ihre Website.

Auf geht’s zum Sichern

Nun sind Sie bereit, Ihre WordPress-Datenbank zu sichern. Haben Sie eine Backup-Methode, ein Plugin oder einen Dienst, den wir übersehen haben? Fügen Sie ihn in die Kommentare ein.