Risposte:
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
>scriverà l'output del mysqlcomando stdoutnel file myfile.sql.gzche molto probabilmente non è quello che vuoi. Inoltre, questo comando ti chiederà la password dell'utente "root" di MySQL.
~/.my.cnfcon 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 pve 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
pvsembra essere anche nei repository di Ubuntu (almeno in 12.04 LTS lo è), ma ancora una volta devi farlo sudo apt-get install pvper 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
gunzipsu 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 gzcatinvece, 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-stdoutopzione di gunzipcomando
per esempio:
gunzip -c file.sql.gz | mysql -u root -p database