J'ai un fichier de vidage .gz sql (exemple: foo.sql.gz) que je veux importer dans ma base de données avec la commande classique mysql.
gunzip -c foo.sql.gz > foo.sql
mysql -uroot -ppassword foo < foo.sql
foo est la base de données.
Comment puis-je diriger ces deux commandes en une seule?
A tenté
gunzip -c foo.sql.gz | mysql -uroot -ppassword foo
mais ne semble pas fonctionner; je reçois gzip: stdout: Broken pipe
zcat foo.sql.gz | mysql -uroot -ppassword foo
Cela laissera également foo.sql.gz
tel quel.
Pour ceux qui utilisent Max OSX, il existe n bogue avec zcat
. Vous devez donc utiliser gzcat
à la place.
gzcat foo.sql.gz | mysql -uroot -ppassword foo
Toutes les autres réponses recommandent d'écrire le mot de passe dans la commande. C'est une très mauvaise pratique et pose des risques de sécurité. S'il vous plaît NE PAS FAIRE ça.
Vous pouvez laisser le mot de passe vide dans la commande, elle vous demandera de saisir le mot de passe de manière interactive. De cette façon, le mot de passe n'est pas enregistré dans l'historique bash.
gunzip < dump.sql.gz | mysql -u username -p databasename