ฉันมีไฟล์ถ่ายโอน. gz sql (ตัวอย่าง: foo.sql.gz) ที่ฉันต้องการนำเข้าในฐานข้อมูลของฉันด้วยคำสั่ง mysql แบบคลาสสิก
gunzip -c foo.sql.gz > foo.sql
mysql -uroot -ppassword foo < foo.sql
foo เป็นฐานข้อมูล
ฉันจะไพพ์คำสั่งทั้งสองนี้ในคำสั่งเดียวได้อย่างไร
พยายาม
gunzip -c foo.sql.gz | mysql -uroot -ppassword foo
แต่ดูเหมือนจะไม่ทำงาน ฉันเข้าใจgzip: stdout: Broken pipe
6
FYI คุณไม่ต้องการส่งรหัสผ่าน mysql ในบรรทัดคำสั่ง สิ่งนี้นำไปสู่การถูกเก็บไว้ใน ~ / .bash_history ให้ทุกคนได้เห็น หากคุณเพียงแค่ใส่ -p มันจะแจ้งให้คุณป้อนรหัสผ่านของคุณซึ่งมีความปลอดภัยมากขึ้น (และไม่ทำลายท่อ zcat อย่างใดอย่างหนึ่ง)
—
thefreeman
คำสั่ง orignal ของคุณจะทำงานถ้า gunzip <foo.sql.gz | mysql -uroot -ppassword foo
—
Yada