Cum să exportați/importați corect baza de date WordPress (MySQL) prin linia de comandă?
Î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?

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.

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?

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

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.

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.

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

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.
