Come clonare un DB mysql o fare un semplice backup
Inviata da
blackout
Spesso ci si trova nelle condizioni di dover clonare un DataBase, magari perche' dobbiamo formattare il nostro computer o dobbiamo cambiare il server dove abbiamo il nostro bel forum che ha le informazioni memorizzate in un DB. Molti non lo sanno, e spesso si ricorre a phpmyadmin per "travasare" un database da un computer ad un altro, ma esiste un comando molto comodo che fa parte del pacchetto mysql: mysqldump. Il suo utilizzo e' molto semplice; basta eseguire: mysqldump -uuser -ppassword database
e viene prodotto in output del testo che rappresenta tutti i comandi SQL necessari per ricreare il database. Quindi basta redirigere l'output su di un file e darlo in pasto a MySQL del nuovo server, ed il gioco e' fatto. Un altro accorgimento: spesso l'output ottenuto e' enorme, per cui si puo' comprimere con un comando come questo: mysqldump -uuser -ppassword database | gzip -c - >sqldump.gz
Ecco quindi bello e pronto il nostro file di backup (per di piu' compresso). Quindi per creare la copia del database sul nuovo server: echo "CREATE DATABASE database;" | mysql -uroot -ppassword zcat sqldump.gz | mysql -uroot -ppassword -Ddatabase
Inoltre mysqldump puo' essere utilizzato per editare una tabella.Ad esempio per estrarre il contenuto di una tabella: mysqldump --add-drop-table -uuser -ppassword database tabella > tablecontent.sql
Quindi si puo' editare tablecontent.sql e ricaricare la tabella con: mysql -uuser -ppassword database < tablecontent.sql
La --add-drop-table ha aggiunto il comando che cancella la tabella e la ricrea prima di caricare i dati. Con questa utility come potrete immaginare si possono fare una miriade di cose interessanti, basta usare un po di fantasia e dare un occhio al man. Buon divertimento!