Risposte:
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
>
scriverà l'output del mysql
comando stdout
nel file myfile.sql.gz
che molto probabilmente non è quello che vuoi. Inoltre, questo comando ti chiederà la password dell'utente "root" di MySQL.
~/.my.cnf
con le credenziali. ;)
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
. Saprà che l'ultimo parametro è il database che si desidera utilizzare, non la password.
Per visualizzare una barra di avanzamento durante l'importazione di un file sql.gz, scaricare pv
e utilizzare quanto segue:
pv mydump.sql.gz | gunzip | mysql -u root -p
In CentOS / RHEL, è possibile installare pv con yum install pv
.
In Debian / Ubuntu apt-get install pv
.
In MAC, brew install pv
pv
sembra essere anche nei repository di Ubuntu (almeno in 12.04 LTS lo è), ma ancora una volta devi farlo sudo apt-get install pv
per ottenerlo. Grazie Banjer, questo è perfetto per le importazioni di grandi database!
brew install pv
Il modo più semplice è decomprimere il file del database prima dell'importazione. Anche come menzionato da @Prof. Moriarty non dovresti specificare la password nel comando (ti verrà chiesta la password). Questo comando preso da webcheatsheet decomprimerà e importerà il database in una volta sola:
gunzip < myfile.sql.gz | mysql -u root -p mydb
gunzip
su un file compresso da 10 GB hanno causato il blocco della mia importazione. non sono sicuro che ciò sia dovuto a vincoli di memoria o qualcosa del genere, ma in futuro farei un errore nel fare un passo alla volta.
Se ricevi un errore da zcat
, in cui il messaggio di errore contiene il nome del file con un suffisso aggiuntivo .Z
, prova a utilizzare gzcat
invece, come descritto in https://stackoverflow.com/questions/296717/zcat-wont-unzip-files-properly
Controlla anche se c'è qualche istruzione USE nel file SQL. La specifica del database dalla riga di comando non garantisce che i dati finiscano lì se viene specificata una destinazione diversa all'interno del file SQL.
pv mydump.sql.gz | gunzip | mysql -u root -p
your_database
. La risposta accettata utilizza questo approccio.
Per i file compressi bzip2 (.sql.bz2), utilizzare:
bzcat <file> | mysql -u <user> -p <database>
O
pv <file> | bunzip2 | mysql -u <user> -p <database>
per vedere la barra di avanzamento.
È possibile utilizzare l' -c, --stdout, --to-stdout
opzione di gunzip
comando
per esempio:
gunzip -c file.sql.gz | mysql -u root -p database