Logo
Blog

Timeline

Blog

MySQL – Backup e ripristino di un database da linea di comando (Shell)

E’ possibile effettuare un semplice backup di un database mysql utilizzando l’opzione mysqldump da riga di comando. In un secondo tempo, per ripristinare un database dal backup (ma anche semplicemente per importare un database da un precedente dump) è sufficiente utilizzare il comando mysql.

Per effettuare un backup (dump) del database mioddb nel file miodb.sql è sufficiente scrivere al prompt dei comandi:

L’utilizzo dell’opzione –databases durante il dump anche nel caso di un singolo database, aggiunge in cima al file esportato i comandi di creazione e selezione del DB:

cosa che può risultare comoda quando poi andiamo ad importare il dump del database. In effetti tale opzione è pensata per esportare un elenco di database:

Per quanto riguarda invece l’mportazione od il ripristino del database, niente di più semplice:

Possiamo specificare il database in cui importare il dump (nel caso il dump sia stato effettuato senza l’opzione –databases) utilizzando l’opzione -D o –database=

Per fare un backup di tutti i database presenti nel nostro server, l’opzione da usare è la seguente:

Se si desidera invece esportare solo alcune tabelle (in particolare tab1 tab2 e tab3) del database miodb, il comando da usare è il seguente:

 

Se invece si desidera esportare l’intero database ad eccezione di alcune tabelle, l’opzione da utilizzare è –ignore-table=database.table; è necessario ripetere tale opzione per ciascuna tabella che si desidera escludere. Se riscriviamo l’esempio precedente ipotizzando di voler escludere le tabelle tab1, tab2 e tab3 del database miodb si ottiene:

mysqldump -u root -p –lock-tables –databases miodb –ignore-table=miodb.tab1 –ignore-table=miodb.tab2 –ignore-table=miodb.tab3 > backup_tables_miodb.sql

Le opzioni utilizzabili con mysqldump sono parecchie, quindi è sempre bene dare un’occhiata all’help, mysqldump –help.