Per esportare o importare con MySQL, inizia accedendo al tuo server, preferibilmente con sudo
accesso (root).
Esportazione da MySQL
Lo strumento migliore per esportare un database MySQL in un file di testo è mysqldump
.
Per usare mysqldump
, dovrai conoscere le credenziali di accesso di un MySQL user
appropriato che dispone dei privilegi necessari per esportare il database in questione.
Con queste informazioni in mano, inserisci mysqldump
comando con i flag e le opzioni appropriati:
$ mysqldump -u my_username -p database_name > output_file_path
Le opzioni in uso sono:
- Il
-u
flag indica che ilusername
di MySQL seguirà. - Il
-p
flag indica che dovrebbe essere richiesta lapassword
associato alusername
di cui sopra . database_name
è ovviamente il nome esatto del database da esportare.- Il
>
symbol è una direttiva Unix perSTDOUT
, che consente ai comandi Unix di inviare i risultati di testo del comando emesso in un'altra posizione. In questo caso, il percorso di output è un percorso di file, specificato daoutput_file_path
.
Nota:in genere è consigliabile inserire il percorso completo e il nome file per il output_file_path
, quindi il file risultante viene generato esattamente dove lo desideri.
Ad esempio, per esportare i books
database come book_admin
utente al ~/backup/database
directory, potremmo usare il seguente comando:
$ mysqldump -u book_admin -p books > ~/backup/database/books.sql
Enter password:
Dopo aver inserito la nostra password quando richiesto sopra, questo comando crea quindi il nostro file di backup con un .sql
suffisso (che è del tutto facoltativo ma consigliabile) nella directory appropriata.
Per impostazione predefinita, mysqldump
non lo farà save comandi che tentano di modificare l'esistenza del database effettivo. Invece, per impostazione predefinita, solo le effettive tables
(e i rispettivi dati) vengono salvati e quindi saranno preparati per l'importazione successiva utilizzando questo file. Se hai bisogno della possibilità di esportare (e successivamente ricreare) un altro database, leggi il --databases
flag nella documentazione ufficiale.
Importazione in MySQL
Ora che hai imparato come esportare un backup di un database MySQL, esploreremo come invertire il processo e importare il backup in un database esistente.
Come puoi immaginare, per complimentarmi con mysqldump
comando utilizzato per l'esportazione, esiste un simile mysqlimport
comando per l'importazione.
Nella maggior parte dei casi, l'importazione è solo una questione di passaggio praticamente identico opzioni per mysqlimport
comando. Per importare il nostro books.sql
salvato file creato in precedenza, useremmo molti degli stessi flag e più o meno la stessa sintassi.
$ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql
Enter password:
Come prima, il -u
e -p
i flag sono richiesti per l'autenticazione, che è poi seguita dal nome del database
in cui importare (in questo caso, stiamo usando un database di produzione diverso), quindi specificando infine il percorso completo del file di dump SQL che contiene i nostri dati di importazione, ~/backup/database/books.sql
. Vale anche la pena notare che mysqlimport
non richiede il <
o >
(STDIN/STDOUT) simboli utilizzati con mysqldump
.
Con ciò, hai imparato sia come esportare/eseguire il backup di un database esistente, sia come importare/ripristinare quei dati nello stesso database o anche in un altro.