zcat foo.sql.gz | mysql -uroot -ppassword foo
Это также оставит foo.sql.gz
как есть.
У меня есть файл дампа .gz sql (пример: foo.sql.gz), который я хочу импортировать в свою базу данных с помощью классической команды mysql.
gunzip -c foo.sql.gz > foo.sql mysql -uroot -ppassword foo < foo.sql
фу это база данных.
Как я могу передать эти две команды в одну?
Пытался
gunzip -c foo.sql.gz | mysql -uroot -ppassword foo
но, похоже, не работает; я получилgzip: stdout: Broken pipe
zcat foo.sql.gz | mysql -uroot -ppassword foo
Это также оставит foo.sql.gz
как есть.
Для тех, кто Max OSX есть ошибка, с zcat
так что вы должны будете использовать gzcat
вместо этого.
gzcat foo.sql.gz | mysql -uroot -ppassword foo
Все остальные ответы рекомендуют написать пароль в команде. Это очень плохая практика и создает угрозу безопасности. Пожалуйста, НЕ ДЕЛАЙТЕ этого.
Вы можете оставить пароль пустым в команде, после чего он попросит вас ввести пароль в интерактивном режиме. Таким образом, пароль не сохраняется в истории Bash.
gunzip < dump.sql.gz | mysql -u username -p databasename