Pipe gunzip and mysql to gunzip a dump and import it
I have a .gz sql dump file (example: foo.sql.gz) that i want import in my database with the classic mysql command.
gunzip -c foo.sql.gz > foo.sql
mysql -uroot -ppassword foo < foo.sql
foo is the database.
How can i pipe these two commands in a single one?
Tried
gunzip -c foo.sql.gz | mysql -uroot -ppassword foo
but doesn't seem to work; i get gzip: stdout: Broken pipe
zcat foo.sql.gz | mysql -uroot -ppassword foo
This will also leave foo.sql.gz
as it is.
For those on Max OSX there is a bug with zcat
so you'll need to use gzcat
instead.
gzcat foo.sql.gz | mysql -uroot -ppassword foo
All other answers are recommending writing the password in the command. This is a very bad practice and poses security risks. Please DON'T DO that.
You can leave the password empty in the command, than it will ask you to enter the password interactively. This way the password is not saved in the bash history.
gunzip < dump.sql.gz | mysql -u username -p databasename