lunedì 18 settembre 2017

Come fare il backup su MySql

Se hai un server con su più database mysql, una delle cose che sicuramente devi prevedere, è la possibilità di fare il backup di tutti i database e le tabelle mysql presenti sulla tua macchina.
Questo perchè, facciamo le corna, se si dovesse brasare il server che ospita il tuo database, byebye dati.

In questo breve articolo ti mostrerò la sintassi da utilizzare per fare backup mysql, completi o mirati.
Infatti, ci sono anche dei casi in cui basta solo una copia di uno specifico database, e non di tutto quanto, oppure addirittura anche solo il backup di una singola tabella mysql.

Vediamo quindi come fare tutto ciò.


Come fare il backup su MySql


Innanzitutto va precisata una cosa: il backup su mysql non si fa dentro il client sql, o da shell mysql, ma semplicemente da prompt dei comandi di dos (se si è su windows), o da shell linux.

Vediamo subito la sintassi da utilizzare per fare un backup completo di tutti i dabase mysql presenti su una macchina:

mysqldump --all-databases > nome-file.sql

Come dicevo poco sopra, questo comando è da lanciare dal promp di dos o da shell.

Come fare il backup su MySql

Alla sintassi sopra indicata, bisogna ricordarsi anche di passare le credenziali d'accesso come root mysql, ovvero con un utente che sia amministratore.
Ecco quindi una sintassi generale da usare per gli script automatici di backup, ai quali si passa già tutto affinchè possano girare in completa autonomia:

mysqldump -u username --password=password --all-databases > nome-file.sql

Vediamo invece come fare il backup di uno specifico database mysql.
Ecco la sintassi da utilizzare:

mysqldump --databases db1 db2 db3 db4 > nome-file.sql

Ovviamente, per fare quanto scritto sopra, va passato solo il nome di un database mysql.
Altrimenti, basta passare tutti i nomi dei db dei quali si vuole fare la copia, separati da uno spazio.

Infine, per fare un backup di una singola tabella mysql, ecco cosa bisogna scrivere:

mysqldump nome-database nome-tabella > nome-file.sql

Anche in questo caso, è possibile elencare i nomi di più tabelle separati da spazio, per poter fare la copia mirata di più tabelle di uno specifico database.

Come si può ben capire, il comando mysqldump mysql è davvero potente ed efficace, perchè oltre che fare la copia di interi database da una semplice riga di comando, si occupa anche di fare un backup consinstente dei dati, grazie a comandi come lock_tables, che di fatto impediscono che altri utenti possano scrivere nelle tabelle mentre si sta facendo la copia del database.

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon