如何通过管道下载、解压缩并导入到 mysql dump all?
How to download, unzip and import to mysql dump all via piping?
是否可以在下载 gzip 文件时将其解压缩并将其一次性提供给 mysql 而无需创建物理文件?
到目前为止,我已经能够使用以下方法将其解压缩并提供给 mysql:-
gunzip < somefile.sql.gz | pv | mysql -u myself -p somedb #pv for viewing process
上述过程期望 gzip 文件在解压缩并将其提供给 mysql 时已经下载。
但是我无法在它同时解压缩和下载时提供给 mysql。
如果这不可能,我也想知道原因,以便安心。
wget -qO- URL | gunzip | pv | mysql -u myself -p somedb
好的,我知道了。感谢@TGray 为我指明了正确的方向。
关键是 named pipes。基本上,您创建一个命名管道并在该命名管道上开始下载,同时将该命名管道管道传输到 gunzip,如上文 post.
中所示
mkfifo mypipe
ssh username@server.com cat /source/file.gz > mypipe &
gunzip < mypipe | pv | mysql -uusername -ppassword dbname
是否可以在下载 gzip 文件时将其解压缩并将其一次性提供给 mysql 而无需创建物理文件?
到目前为止,我已经能够使用以下方法将其解压缩并提供给 mysql:-
gunzip < somefile.sql.gz | pv | mysql -u myself -p somedb #pv for viewing process
上述过程期望 gzip 文件在解压缩并将其提供给 mysql 时已经下载。 但是我无法在它同时解压缩和下载时提供给 mysql。
如果这不可能,我也想知道原因,以便安心。
wget -qO- URL | gunzip | pv | mysql -u myself -p somedb
好的,我知道了。感谢@TGray 为我指明了正确的方向。 关键是 named pipes。基本上,您创建一个命名管道并在该命名管道上开始下载,同时将该命名管道管道传输到 gunzip,如上文 post.
中所示mkfifo mypipe
ssh username@server.com cat /source/file.gz > mypipe &
gunzip < mypipe | pv | mysql -uusername -ppassword dbname