Respostas:
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
>gravará a saída do mysqlcomando no stdoutarquivo myfile.sql.gzque provavelmente não é o que você deseja. Além disso, este comando solicitará a senha do usuário "root" do MySQL.
~/.my.cnfcom as credenciais. ;)
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database. Ele saberá que o último parâmetro é o banco de dados que você deseja usar, não sua senha.
Para exibir uma barra de progresso ao importar um arquivo sql.gz, faça o download pve use o seguinte:
pv mydump.sql.gz | gunzip | mysql -u root -p
No CentOS / RHEL, você pode instalar o pv com yum install pv.
No Debian / Ubuntu apt-get install pv.
No MAC, brew install pv
pvparece estar nos repositórios Ubuntu também (pelo menos em 12.04 LTS), mas novamente você precisa fazer sudo apt-get install pvpara obtê-lo. Obrigado Banjer, isso é perfeito para grandes importações de banco de dados!
brew install pv
A maneira mais simples é descompactar o arquivo do banco de dados antes da importação. Também como mencionado por @Prof. Moriarty, você não deve especificar a senha no comando (você será solicitado a senha). Este comando retirado do webcheatsheet descompactará e importará o banco de dados de uma só vez:
gunzip < myfile.sql.gz | mysql -u root -p mydb
gunzipem um arquivo compactado de 10 GB que causou o congelamento da minha importação. Não tenho certeza se isso é devido a restrições de memória ou algo assim, mas eu iria errar por fazer um passo de cada vez no futuro.
Se você receber um erro zcat, no qual a mensagem de erro contém o nome do arquivo com um sufixo extra .Z, tente usá-lo gzcat, conforme descrito em https://stackoverflow.com/questions/296717/zcat-wont-unzip-files-properly
Verifique também se há alguma instrução USE no arquivo SQL. A especificação do banco de dados na linha de comando não garante que os dados sejam finalizados lá se um destino diferente for especificado no arquivo SQL.
pv mydump.sql.gz | gunzip | mysql -u root -p your_database. A resposta aceita usa essa abordagem.
Para arquivos compactados bzip2 (.sql.bz2), use:
bzcat <file> | mysql -u <user> -p <database>
OU
pv <file> | bunzip2 | mysql -u <user> -p <database>
para ver a barra de progresso.
Você pode usar a -c, --stdout, --to-stdoutopção de gunzipcomando
por exemplo:
gunzip -c file.sql.gz | mysql -u root -p database