So exportieren / importieren Sie die WordPress (MySQL) -Datenbank ordnungsgemäß über die Befehlszeile?

7

Normalerweise kann eine MySQL-Datenbank mit diesen einfachen SSH-Befehlen exportiert und importiert werden:

Export:

mysqldump -u USERNAME -p DATABASE_NAME > filename.sql

Importieren:

mysql -u USERNAME -p DATABASE_NAME < filename.sql

Aber es ist nicht so einfach, wenn es um WordPress geht. Soweit ich sehe, müssen zusätzliche Parameter erwähnt werden, wie --add-drop-tablezum Beispiel.

Der WordPress-Codex bietet einige Informationen , sieht aber überladen und nicht klar genug aus.

Es wäre großartig, wenn jemand, der die Befehlszeile verwendet, die richtigen Befehle zum Exportieren und Importieren einer WordPress-Datenbank mit einigen Erläuterungen (zu den neu verwendeten Parametern) freigeben kann.

Gibt es auch Gründe, warum es nicht ratsam wäre, beim Umgang mit Datenbanken die Befehlszeile zu verwenden und stattdessen eine grafische Benutzeroberfläche wie phpMyAdmin zu verwenden?

da ich bin
quelle

Antworten:

12

So einfach ist das auch für Wordpress. Ich verwende Folgendes, um meine WP-Sites zu sichern:

mysqldump -u <user> -p<pass> --quick --extended-insert <db-name> > backup.sql

Das mysqldump-Dokument enthält Details zu allen Parametern.

--extended-insert ist schneller beim Aktualisieren einer Datenbank aus einer Dump-Datei und verkleinert die Dump-Datei.

--quick macht die Erstellung des Dumps schneller.

Sie müssen keines von beiden wirklich verwenden, machen die Dinge nur ein bisschen schneller und das Schreiben einer Einfügung für jede Zeile macht mich glücklicher - Ihre ursprüngliche Dump-Syntax wäre in Ordnung.

Vergessen Sie jedoch nicht, dass die Domäne domänenspezifische Einträge enthält. Wenn Sie diese Methode zum Sichern / Wiederherstellen verwenden, ist dies in Ordnung. Wenn Sie jedoch von one.com zu two.com wechseln möchten, müssen Sie sie bearbeiten Einträge in, wp_optionsnachdem Sie Ihren Speicherauszug wiederhergestellt haben.

Steve Claridge
quelle
Aber wie wäre es mit --add-drop-tableso etwas, das auf der Codex-Seite erwähnt wird? codex.wordpress.org/… - Sind Sie sicher, dass sie nicht notwendig sind?
its_me
1
Es wird nicht benötigt, mit den Optionen, die ich für die Dump-Dateien verwende, haben alle diese vor der Erstellungs-Tabelle und den nachfolgenden Einfügungen: DROP TABLE IF EXISTS <wp_tablename>; So werden die Tabellen immer gelöscht und dann erstellt und dann Daten in sie eingefügt
Steve Claridge
1
In Übereinstimmung mit Steve würden Ihre ursprünglichen Befehle von mysqldump -u USERNAME -p PASSWORD DATABASE_NAME > filename.sqlund mysql -u USERNAME -p PASSWORD DATABASE_NAME < filename.sql gut funktionieren. Das einzige, worauf Sie wirklich achten sollten, ist das Ausführen von String-Ersetzungen zwischen Export und Import, wenn Sie zwischen Domänen wechseln.
neil_pie
1
Als Update zu den Optionen: Dies stammt aus der mysqldump-Dokumentation: Einige mysqldump-Optionen sind Abkürzungen für Gruppen anderer Optionen: Die Verwendung von --opt entspricht der Angabe von --add-drop-table, --add-locks, - -create-options, --disable-keys, --extended-insert, --lock-tables, --quick und --set-charset. Alle Optionen, für die --opt steht, sind ebenfalls standardmäßig aktiviert, da --opt standardmäßig aktiviert ist.
neil_pie
auch nützlich für die Migration ist das Hinzufügen--compatible=mysql40
KWubbufetowicz
1

Nachdem ich die Zeit investiert habe, um die Grundlagen der Befehlszeile zu erlernen, verwende ich phpMyAdmin jetzt immer weniger. Ich finde es jedoch einfacher, wenn ich einen Eintrag durchsuchen oder bearbeiten muss (z. B. das Bearbeiten der wp_optionsEinträge, wie Steve oben erwähnt). Ich ging auch zur GUI, wenn ich eine besonders große Tabelle (die Protokolle eines solchen Plugins) ausschließen wollte, die nicht gesichert werden musste. Aber ich habe festgestellt, dass Sie einfach hinzufügen können

--ignore-table=my_db_name.my_table_name my_db_name
Markcbain
quelle
0

Zum Kopieren einer Site an einen neuen Speicherort.

Verwenden Sie --add-drop-table während des Exports, wenn Sie in eine leere Datenbank importieren. Lassen Sie --add-drop-table beim Export weg, wenn Sie importieren, um die Datenbank zusammenzuführen.

Denken Sie daran, wp_options nach dem Import jedes Mal zu aktualisieren, da der Pfad unterschiedlich ist. Aktualisieren Sie außerdem die .htaccess-Datei mit einem neuen Pfad.

user3548101
quelle