zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database
>irá escrever 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.
A maneira mais simples é descompactar o arquivo de banco de dados antes de importar. Também como mencionado pelo @Prof. Moriarty , você não deve especificar a senha no comando (será solicitada a senha). Este comando retirado do webcheatsheet irá descompactar e importar o banco de dados de uma só vez:
Verifique também se há alguma instrução USE no arquivo SQL. Especificar o banco de dados na linha de comando não garante que os dados terminem lá se um destino diferente for especificado no arquivo SQL.
O primeiro comando, cat, imprime o arquivo. Sua saída, o conteúdo do arquivo, é enviada como entrada para o próximo comando, gzip. gzipcom a -dopção a descompacta a entrada passada para ele e gera o resultado, que é finalmente usado como entrada para o cliente MySQL, o mysqlprograma. O envio de saída -> entrada é trazido a nós pelo |operador (pipe) no bash e em outro shell.
Este script também pode ser usado em algumas distribuições Linux populares, como o Ubuntu. Não tenho certeza se gzipestá sempre disponível. Mas pode ser facilmente instalado, se não, com:
>
irá escrever a saída domysql
comando nostdout
arquivomyfile.sql.gz
que provavelmente não é o que você deseja. Além disso, este comando solicitará a senha do usuário "root" do MySQL.Para exibir uma barra de progresso ao importar um arquivo sql.gz, baixe
pv
e use o seguinte:No CentOS/RHEL, você pode instalar pv com
yum install pv
.No Debian/Ubuntu,
apt-get install pv
.No macOS,
brew install pv
A maneira mais simples é descompactar o arquivo de banco de dados antes de importar. Também como mencionado pelo @Prof. Moriarty , você não deve especificar a senha no comando (será solicitada a senha). Este comando retirado do webcheatsheet irá descompactar e importar o banco de dados de uma só vez:
Se você receber um erro de
zcat
, em que a mensagem de erro contém o nome do arquivo com um sufixo extra.Z
, tente usargzcat
, conforme descrito em https://stackoverflow.com/questions/296717/zcat-wont-unzip-files-properlyNo macOS, usei isso:
Digite sua senha e pronto!
Verifique também se há alguma instrução USE no arquivo SQL. Especificar o banco de dados na linha de comando não garante que os dados terminem lá se um destino diferente for especificado no arquivo SQL.
Você pode usar
-c, --stdout, --to-stdout
a opção degunzip
comandopor exemplo:
No MacOS , tenho usado o seguinte one-liner sem necessidade de instalar programas adicionais, exceto o próprio cliente MySQL.
O primeiro comando,
cat
, imprime o arquivo. Sua saída, o conteúdo do arquivo, é enviada como entrada para o próximo comando,gzip
.gzip
com a-d
opção a descompacta a entrada passada para ele e gera o resultado, que é finalmente usado como entrada para o cliente MySQL, omysql
programa. O envio de saída -> entrada é trazido a nós pelo|
operador (pipe) no bash e em outro shell.Este script também pode ser usado em algumas distribuições Linux populares, como o Ubuntu. Não tenho certeza se
gzip
está sempre disponível. Mas pode ser facilmente instalado, se não, com:Se você estiver usando um banco de dados de tamanho pequeno, é melhor extrair e importar. Aqui está o comando de extração
Aqui está importando o comando.
Para arquivos compactados bzip2 (.sql.bz2), use:
OU
para ver a barra de progresso.