J'ai un fichier dump sql .gz (exemple : foo.sql.gz) que je veux importer dans ma base de données avec la commande mysql classique.
gunzip -c foo.sql.gz > foo.sql
mysql -uroot -ppassword foo < foo.sql
foo est la base de données.
Comment puis-je regrouper ces deux commandes en une seule ?
Essayé
gunzip -c foo.sql.gz | mysql -uroot -ppassword foo
mais cela ne semble pas fonctionner ; j'obtiens gzip: stdout: Broken pipe
7 votes
Pour votre information, vous ne devez vraiment pas passer le mot de passe mysql sur la ligne de commande. Cela conduit à ce qu'il soit stocké dans ~/.bash_history pour que tout le monde puisse le voir. Si vous mettez simplement -p, il vous demandera d'entrer votre mot de passe, ce qui est beaucoup plus sûr (et ne casse pas non plus le pipe zcat).
1 votes
Votre commande orignale fonctionnerait si gunzip < foo.sql.gz | mysql -uroot -ppassword foo