ape*_*ari 29 mysql gunzip pipe stdout dump
我有一个 .gz sql 转储文件(例如:foo.sql.gz),我想使用经典的 mysql 命令将其导入到我的数据库中。
gunzip -c foo.sql.gz > foo.sql
mysql -uroot -ppassword foo < foo.sql
Run Code Online (Sandbox Code Playgroud)
foo 是数据库。
如何在一个命令中管理这两个命令?
试过
gunzip -c foo.sql.gz | mysql -uroot -ppassword foo
Run Code Online (Sandbox Code Playgroud)
但似乎不起作用;我明白了gzip: stdout: Broken pipe
Nif*_*fle 41
zcat foo.sql.gz | mysql -uroot -ppassword foo
Run Code Online (Sandbox Code Playgroud)
这也将保持foo.sql.gz
原样。
小智 14
对于那些在 Max OSX 上的人来说,有一个错误,zcat
所以你需要gzcat
改用。
gzcat foo.sql.gz | mysql -uroot -ppassword foo
Run Code Online (Sandbox Code Playgroud)
所有其他答案都建议在命令中写入密码。这是一种非常糟糕的做法,会带来安全风险。请不要那样做。
您可以在命令中将密码留空,然后它会要求您以交互方式输入密码。这样密码就不会保存在 bash 历史记录中。
gunzip < dump.sql.gz | mysql -u username -p databasename
Run Code Online (Sandbox Code Playgroud)