Come Esportare/Importare Correttamente il Database WordPress (MySQL) Tramite Riga di Comando?

6 dic 2012, 12:28:48
Visualizzazioni: 23K
Voti: 8

Normalmente, un database MySQL può essere esportato e importato utilizzando questi semplici comandi SSH:

Esportazione:

mysqldump -u USERNAME -p DATABASE_NAME > filename.sql

Importazione:

mysql -u USERNAME -p DATABASE_NAME < filename.sql

Ma quando si tratta di WordPress non è così semplice. Da quello che vedo, è necessario specificare parametri aggiuntivi, come ad esempio --add-drop-table.

Il WordPress Codex fornisce alcune informazioni, ma sembrano disordinate e non abbastanza chiare.

Sarebbe fantastico se qualcuno che utilizza la riga di comando potesse condividere i comandi corretti per esportare e importare un database WordPress, con qualche spiegazione (dei nuovi parametri utilizzati).

Inoltre, ci sono motivi per cui non sarebbe consigliabile utilizzare la riga di comando quando si ha a che fare con il database, e invece utilizzare un'interfaccia grafica come phpMyAdmin?

0
Tutte le risposte alla domanda 3
5
15

È altrettanto semplice per WordPress. Utilizzo il seguente comando per eseguire il backup dei miei siti WP:

mysqldump -u USER -pPASSWORD --quick --extended-insert DBNAME > backup.sql

La documentazione di mysqldump fornisce i dettagli su tutti i parametri.

--extended-insert è più veloce quando si aggiorna un database da un file di dump e rende il file di dump più piccolo.

--quick rende più veloce la creazione del dump.

Non è strettamente necessario utilizzare nessuno di questi parametri, ma rendono le operazioni un po' più veloci e scrivere un insert per ogni riga mi fa sentire più tranquillo - la sintassi originale del tuo dump andrebbe comunque bene.

Non dimenticare però che ci sono voci specifiche del dominio nel database, quindi se stai utilizzando questo metodo per backup/ripristino va bene, ma se vuoi spostarti da uno.com a due.com dovrai modificare le voci in wp_options dopo aver ripristinato il tuo dump.

6 dic 2012 12:55:34
Commenti

Ma riguardo a --add-drop-table e cose simili menzionate nella pagina del codex? http://codex.wordpress.org/Backing_Up_Your_Database#Using_Straight_MySQL_Commands - sei sicuro che non siano necessarie?

its_me its_me
6 dic 2012 13:56:42

Non è necessario, con le opzioni che uso i file di dump hanno tutti questo prima della creazione della tabella e degli insert successivi:

DROP TABLE IF EXISTS <wp_tablename>;

quindi le tabelle vengono sempre eliminate e poi ricreate, quindi i dati vengono inseriti al loro interno

Steve Claridge Steve Claridge
6 dic 2012 23:18:06

Concordo con Steve, i tuoi comandi originali mysqldump -u USERNAME -p PASSWORD DATABASE_NAME > filename.sql e mysql -u USERNAME -p PASSWORD DATABASE_NAME < filename.sql funzionerebbero perfettamente. L'unica cosa da tenere veramente presente è evitare di eseguire sostituzioni di stringhe tra l'esportazione e l'importazione se si sta migrando tra domini diversi.

neil_pie neil_pie
10 dic 2012 11:23:54

Come aggiornamento riguardo alle opzioni: questo è tratto dalla documentazione di mysqldump:

Alcune opzioni di mysqldump sono abbreviazioni per gruppi di altre opzioni:

L'uso di --opt è equivalente a specificare --add-drop-table, --add-locks, --create-options, --disable-keys, --extended-insert, --lock-tables, --quick, e --set-charset. Tutte le opzioni rappresentate da --opt sono attive di default perché --opt è attivo di default.

neil_pie neil_pie
10 dic 2012 11:30:39

utile per la migrazione è anche aggiungere --compatible=mysql40

MAQ MAQ
17 gen 2018 21:16:09
0

Avendo investito tempo per imparare le basi della riga di comando, ora uso phpMyAdmin sempre meno. Tuttavia, lo trovo più comodo quando ho bisogno di navigare o modificare una voce (come modificare le voci di wp_options, come menzionato da Steve sopra). Inoltre, prima utilizzavo l'interfaccia grafica quando volevo escludere una tabella particolarmente grande (come i log di un plugin) che non necessitava di backup. Ma ho scoperto che puoi semplicemente aggiungere

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

Per copiare un sito in una nuova posizione.

Utilizza --add-drop-table durante l'esportazione, se stai importando in un database vuoto. Ometti --add-drop-table durante l'esportazione, se stai importando per unire il database.

Ricorda di aggiornare wp_options dopo ogni importazione, poiché il percorso è diverso. Inoltre, aggiorna il file .htaccess con il nuovo percorso.

30 nov 2014 08:10:48