Mysql
 sql >> Database >  >> RDS >> Mysql

Importazione ed esportazione in file utilizzando la riga di comando di MySQL

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 il username di MySQL seguirà.
  • Il -p flag indica che dovrebbe essere richiesta la password associato al username di cui sopra .
  • database_name è ovviamente il nome esatto del database da esportare.
  • Il > symbol è una direttiva Unix per STDOUT , 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 da output_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.