zcat foo.sql.gz | mysql -uroot -ppassword foo
Isso também deixará foo.sql.gz
como está.
Eu tenho um arquivo de despejo sql .gz (exemplo: foo.sql.gz) que eu quero importar no meu banco de dados com o comando mysql clássico.
gunzip -c foo.sql.gz > foo.sql
mysql -uroot -ppassword foo < foo.sql
foo é o banco de dados.
Como posso canalizar esses dois comandos em um único?
Tentei
gunzip -c foo.sql.gz | mysql -uroot -ppassword foo
mas não parece funcionar; Eu recebo gzip: stdout: Broken pipe
Para aqueles que estão no Max OSX, há um bug com zcat
, então você precisará usar gzcat
.
gzcat foo.sql.gz | mysql -uroot -ppassword foo
Todas as outras respostas recomendam escrever a senha no comando. Esta é uma prática muito ruim e apresenta riscos de segurança. Por favor, não faça isso.
Você pode deixar a senha vazia no comando, do que lhe pedirá para inserir a senha interativamente. Desta forma, a senha não é salva no histórico bash.
gunzip < dump.sql.gz | mysql -u username -p databasename