Essendo uno dei principali database liberamente disponibili, MySQL è una scelta popolare per tutti i tipi di applicazioni web. Essendo esposto a Internet, la tua app è ovviamente esposta ad attacchi malevoli. Se il tuo server è compromesso, nella migliore delle ipotesi dovrai reinstallare la tua applicazione; nel peggiore dei casi, potresti perdere completamente i tuoi dati. Alla fine sarai anche in una situazione in cui è necessario migrare un database da un server a un altro.
Per cosa viene usato mysqldump?
Il mysqldump strumento hai coperto per entrambe queste situazioni. La sua funzione di base è quella di prendere un database MySQL e "scaricarlo" come un file di testo. Ma non solo qualsiasi file di testo … il file è un insieme di istruzioni SQL. Queste istruzioni, una volta eseguite, ricostruiranno il database allo stato preciso in cui si trovava quando è stato eseguito il dump.
Quindi puoi usare mysqldump prendere le esportazioni di un database. Questi possono essere a scopo di backup o perché stai spostando il database su un nuovo host. In ogni caso, lo farai ad un certo punto importare il file di testo torna in un server di database MySQL. Eseguirà tutte le istruzioni SQL nel file, che ricostruisce il DB allo stato originale. Questa parte in realtà non usa il mysqldump comando, ma non sarebbe possibile senza questa utility!
I documenti MySQL elencano altri metodi di creazione di backup, ma questi hanno tutti i loro svantaggi:
- L'hotcopying di un DB di MySQL Enterprise è un ottimo modo per ottenere questi backup … se non ti interessa il prezzo di vendita Enterprise.
- Copiare le directory dei dati del DB può essere complicato se ti stai spostando attraverso i sistemi operativi, dato che le loro destinazioni saranno diverse.
- Esportare in un file di testo delimitato ti darà il contenuto, ma dovrai ricreare tu stesso la struttura. E faresti meglio a prenderlo nel modo giusto …
- È spesso possibile eseguire il backup di database da programmi GUI come MySQL Workbench. Ma questo è un processo manuale, cioè non qualcosa che puoi scrivere o includere in un lavoro batch.
Installazione dello strumento mysqldump
Se sei interessato a questo articolo, è probabile che tu abbia già installato MySQL. Se è così, buone notizie, l'hai già fatto mysqldump! In caso contrario, puoi semplicemente installare MySQL nel modo standard per il tuo sistema operativo.
Per Windows, controlla qui le nostre istruzioni per l'installazione di MySQL su Windows 7 (il processo di installazione è ancora molto simile). Allo stesso modo su macOS, vedere le nostre istruzioni per installare MySQL su macOS 10.7 (ancora, più vecchio ma ancora applicabile). Gli utenti di sistemi Linux basati su Ubuntu possono utilizzare il seguente comando per installare il client MySQL e le utilità:
sudo apt installa mysql-client Una volta installato, puoi usare mysqldump per ottenere un backup completo del tuo database. mysqldump -h nome o IP dell'host del database -u nome utente del DB -p nome del database> db_backup.sql
Rompiamo un po 'questo comando: Al termine, avrai un file .SQL. Questo è solo un file di testo contenente istruzioni SQL. Puoi aprirlo in qualsiasi editor di testo per ispezionarne il contenuto. Guardando un'esportazione da un database di WordPress, puoi vedere come questi file sono messi insieme. Il file è diviso in sezioni. Nell'immagine sopra, possiamo vedere la prima sezione imposta la tabella per i commenti di WordPress. La seconda sezione ricrea quindi il contenuto (cioè i record dei commenti) che era in quelle tabelle. Quando vai a reimportare nuovamente il tuo dump MySQL, il comando funzionerà attraverso il file, eseguendo le istruzioni e ricostruendo il tuo database nel modo in cui era. Quindi come lo fai? Diamo un'occhiata. Prima che tu sia in grado di farlo, avrai bisogno di un database già creato e di avere un nome utente e una password validi. Dovresti anche avere tutte le autorizzazioni per il database. (A rigor di termini non hai bisogno del CONCEDERE permesso, ma è più semplice concederle tutte.) Puoi trovare dettagli sui permessi del database in questo articolo. Per reimportare i dati, attenersi alla seguente procedura: Quando hai finito, vedrai un lungo elenco di messaggi che notano che le istruzioni SQL sono in esecuzione. Tieni d'occhio gli errori, ma se hai i permessi giusti, dovresti stare bene dato che si tratta di un database vuoto. Una volta completato il processo, avrai un duplicato del tuo database originale. Puoi verificare ciò facendo un altro dump e confrontando le due uscite. Un editor di testo decente sarà in grado di farlo per te, o uno strumento * diff * dedicato come quello mostrato nell'immagine qui sotto: Ci sono solo due differenze tra questi file, rappresentati da linee rosse nella parte superiore e inferiore della barra di scorrimento a destra. Il primo è la linea che contiene il nome del database e ci aspettiamo che questo sia diverso perché li abbiamo nominati in modo diverso. Il secondo, completamente alla fine, è il timestamp per il file dump. E ci aspettiamo anche che questo sia diverso, poiché abbiamo ricreato il secondo database dopo il primo. Altrimenti, i file sono esattamente gli stessi, vale a dire anche i database che li hanno generati! Estrazione di un dump MySQL
Importazione di un file di dump MySQL