decoding

Backup e ripristino di un database mysql

Reading Time: 2 minutesFavoriteLoadingAggiungi ai preferiti

Il Backup e ripristino di un database mysql può essere fatto in diversi modi, ma in questo post vogliamo concentrarci sull’utilizzo di strumenti sempre disponibili in un server su cui gira MySQL.

Gli esempi seguenti fanno sempre riferimento a comandi lanciati direttamente sulla macchina in cui gira il server MySQL e via shell.

L’utente mysql con cui vengono lanciati i comandi deve avere i permessi per effettuare il backup e il ripristino dei database all’interno del server mysql.

Backup

Attraverso l’utility mysqldump è possibile effettuare il dump di un database o di una collezione di database; il file ottenuto contiene tutte le istruzioni SQL necessarie per ricreare le tabelle e/o popolarle di dati. mysqldump può essere usato per esportare i dati di un database all’interno di file SQL, CSV o XML.

Con questo comando possiamo effettuare il backup di un singolo database mysql

mysqldump -u nomeutente -p database_da_copiare > backup.sql

Aggiungendo l’opzione –databases possiamo effettuare il backupdi più database in contemporanea

mysqldump -u nomeutente -p --databases database_uno database_due database_tre > backup.sql

Con l’opzione –all-databases possiamo esportare tutti i database del server mysql

mysqldump -u nomeutente -p --all-databases > backup.sql

Con il comando seguente possiamo effettuare il backup di una singola tabella di un database

mysqldump -u nomeutente -p database_da_copiare nome_tabella > backup.sql

Con l’opzione gzip possiamo comprimere il backup effettuato

mysqldump -u nomeutente -p database_da_copiare | gzip -9 > backup.sql.gz

 

Ripristino

Per ripristinare il backup di un database mysql possiamo usare il seguente comando, sempre da shell sulla macchina in cui gira il server MySQL

mysql -u nomeutente -p < backup.sql

Prima di effettuare il ripristino è bene controllare che nel file backup.sql sia presente il comando per la creazione del database. Se non fosse presente basterà aggiungere queste due righe in cima al file backup.sql

;Creo il database
CREATE DATABASE nomedatabase;
;Seleziono il database
USE nomedatabase;

Il comand seguente permette di ripristinare il backup compresso

gunzip < backup.sql.gz | mysql -u nomeutente -p