以下工作符合预期:
# 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
“
答案1
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 命令选项
答案2
或者,如果你真的必须这么做,那么总有老办法:复制并粘贴(是的,真的):
mysqldump -uroot -pPasswd central conc_passenger --no-create-info --compact | gzip | base64
然后将该命令的输出放置在B64DATA
:
echo 'B64DATA' | base64 -id | zcat | mysql -uroot -pPasswd someDB
并在远程主机上运行它。是的,有更好的方法,但是当您只需要将几十 KB 从一个地方移动到另一个地方并且每个窗口位于六个级联终端会话的末尾时,利用 GUI 中已经并排有两个窗口的事实可以节省时间。