Respostas:
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
>
gravará a saída do mysql
comando no stdout
arquivo myfile.sql.gz
que provavelmente não é o que você deseja. Além disso, este comando solicitará a senha do usuário "root" do MySQL.
~/.my.cnf
com 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 pv
e 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
pv
parece estar nos repositórios Ubuntu também (pelo menos em 12.04 LTS), mas novamente você precisa fazer sudo apt-get install pv
para 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
gunzip
em 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-stdout
opção de gunzip
comando
por exemplo:
gunzip -c file.sql.gz | mysql -u root -p database