解压缩远程服务器上的文件,而无需SSH访

以下工作如预期:

# mysqldump -uroot -pPasswd central conc_passenger --no-create-info --compact | mysql -h192.168.50.51 mysql -uroot -pPassWord someDB 

这也适用于:

 # mysqldump -uroot -pPasswd central conc_passenger --no-create-info --compact | gzip | ssh 192.168.50.51 "gunzip | mysql -uroot -pPassWord someDB" 

但是,当我没有SSH访问远程服务器,如何提取数据? 这不行的::

# mysqldump -uroot -pPasswd central conc_passenger --no-create-info --compact | gzip | "gunzip | mysql -uroot -pPassWord someDB # mysqldump -uroot -pPasswd central conc_passenger --no-create-info --compact | gzip | "gunzip | mysql -uroot -pPassWord someDB

gzip和gunzip只能通过ssh连接更快地发送数据。 它不会更快地将任何数据加载到mysql,而是在调用mysql命令加载它时完全解压缩。

尝试以下方法之一:

 mysqldump -uroot -pPasswd central conc_passenger --no-create-info --compact | mysql -uroot -pPassWord someDB 

或者,使用压缩来加速客户端和服务器之间的直接传输(如果客户端和服务器都支持的话)尝试:

 mysqldump -uroot -pPasswd central conc_passenger --no-create-info --compact | mysql -uroot -pPassWord --compress someDB 

第二个和第一个是一样的,但是在mysql客户端添加了'–compress'。

来源: mysql命令选项

或者,如果你真的必须的话,总是有一个老待机:复制和粘贴(是的,真的):

mysqldump -uroot -pPasswd central conc_passenger --no-create-info --compact | gzip | base64

然后将该命令的输出代替B64DATA

echo 'B64DATA' | base64 -id | zcat | mysql -uroot -pPasswd someDB

并在远程主机上运行。 是的,有更好的办法,但是当你只需要将几十KB的文件从一个地方移动到另一个地方时,每个窗口都在六个级联的terminal会话结束时,利用你已经有两个窗口的事实在你的graphics用户界面可以成为救星。