Cum să exportați/importați corect baza de date WordPress (MySQL) prin linia de comandă?

6 dec. 2012, 12:28:48
Vizualizări: 23K
Voturi: 8

În mod normal, o bază de date MySQL poate fi exportată și importată folosind aceste comenzi SSH simple:

Export:

mysqldump -u UTILIZATOR -p NUME_BAZA_DATE > fisier.sql

Import:

mysql -u UTILIZATOR -p NUME_BAZA_DATE < fisier.sql

Dar nu este atât de simplu când vine vorba de WordPress. Din ce observ, trebuie menționați parametri suplimentari, cum ar fi --add-drop-table de exemplu.

WordPress Codex oferă câteva informații, dar par dezorganizate și nu suficient de clare.

Ar fi grozav dacă cineva care folosește linia de comandă poate împărtăși comenzile corecte pentru exportarea și importarea unei baze de date WordPress, cu explicații (pentru orice parametri noi utilizați).

De asemenea, există motive pentru care nu ar fi recomandabil să folosim linia de comandă când lucrăm cu baza de date și în schimb să folosim o interfață grafică precum phpMyAdmin?

0
Toate răspunsurile la întrebare 3
5
15

Este la fel de simplu și pentru WordPress. Eu folosesc următoarea comandă pentru a face backup la site-urile mele WordPress:

mysqldump -u UTILIZATOR -pPAROLA --quick --extended-insert NUME_BAZA_DATE > backup.sql

Documentația mysqldump oferă detalii despre toți parametrii.

--extended-insert este mai rapid atunci când actualizezi o bază de date dintr-un fișier de backup și face fișierul de backup mai mic.

--quick face crearea backup-ului mai rapidă.

Nu este neapărat necesar să folosești oricare dintre aceste opțiuni, doar fac lucrurile puțin mai rapide, iar scrierea unei instrucțiuni INSERT pentru fiecare rând mă face să mă simt mai bine - sintaxa originală pentru backup ar fi perfect acceptabilă.

Nu uita totuși că în baza de date există intrări specifice domeniului, așa că dacă folosești această metodă doar pentru backup/restaurare, atunci ești în regulă, dar dacă dorești să muți de la unDomeniu.com la altDomeniu.com, va trebui să editezi intrările din wp_options după ce restaurezi backup-ul.

6 dec. 2012 12:55:34
Comentarii

Dar cum rămâne cu --add-drop-table și alte opțiuni similare menționate pe pagina codex? http://codex.wordpress.org/Backing_Up_Your_Database#Using_Straight_MySQL_Commands - ești sigur că nu sunt necesare?

its_me its_me
6 dec. 2012 13:56:42

Nu este necesar, cu opțiunile pe care le folosesc fișierele de dump conțin întotdeauna acest lucru înainte de crearea tabelei și inserările ulterioare:

DROP TABLE IF EXISTS <wp_tablename>;

astfel încât tabelele sunt întotdeauna eliminate și apoi create, după care datele sunt introduse în ele

Steve Claridge Steve Claridge
6 dec. 2012 23:18:06

Confirm ce spune Steve, comenzile tale originale mysqldump -u USERNAME -p PASSWORD DATABASE_NAME > filename.sql și mysql -u USERNAME -p PASSWORD DATABASE_NAME < filename.sql ar funcționa perfect. Singurul lucru la care trebuie să fii atent este să nu execuți înlocuiri de șiruri de caractere între export și import dacă muți între domenii diferite.

neil_pie neil_pie
10 dec. 2012 11:23:54

Ca o actualizare privind opțiunile: aceasta este din documentația mysqldump:

Unele opțiuni mysqldump sunt prescurtări pentru grupuri de alte opțiuni:

Folosirea --opt este aceeași cu specificarea --add-drop-table, --add-locks, --create-options, --disable-keys, --extended-insert, --lock-tables, --quick și --set-charset. Toate opțiunile pentru care stă --opt sunt de asemenea activate implicit deoarece --opt este activat implicit.

neil_pie neil_pie
10 dec. 2012 11:30:39

de asemenea util pentru migrare este adăugarea --compatible=mysql40

MAQ MAQ
17 ian. 2018 21:16:09
0

După ce am investit timp să învăț elementele de bază ale liniei de comandă, folosesc phpMyAdmin din ce în ce mai rar. Totuși, îl consider mai ușor când trebuie să răsfoiesc sau să editez o intrare (cum ar fi editarea intrărilor din wp_options, așa cum menționează Steve mai sus). De asemenea, mai apelez la interfața grafică când vreau să exclud o tabelă deosebit de mare (cum ar fi jurnalele unui plugin) care nu trebuie să fie salvată. Dar am descoperit că poți pur și simplu să adaugi:

--ignore-table=my_db_name.my_table_name my_db_name
9 dec. 2012 11:32:08
0

Pentru copierea unui site într-o locație nouă.

Folosește --add-drop-table în timpul exportării, dacă importezi într-o bază de date goală. Omitere --add-drop-table în timpul exportării, dacă importezi pentru a îmbina baza de date.

Nu uita să actualizezi wp_options după fiecare import, deoarece calea este diferită. De asemenea, actualizează fișierul .htaccess cu noua cale.

30 nov. 2014 08:10:48