来自远程主机的 mysqldump

Posted

技术标签:

【中文标题】来自远程主机的 mysqldump【英文标题】:mysqldump from remote host 【发布时间】:2012-11-15 16:52:52 【问题描述】:

是否可以通过 ssh 连接从远程主机转储数据库并将备份文件保存在我的本地计算机上。

如果是这样,如何实现?

我假设它将是从 ssh 到转储的管道输出的某种组合,反之亦然,但无法弄清楚。

【问题讨论】:

我在这里回复了类似的答案:***.com/questions/6564882/… 【参考方案1】:

我创建了一个script,以便使用Michel Feldheim 提供的答案作为起点,更轻松地在远程主机上自动执行mysqldump 命令:

mysqldump-remote

该脚本允许您从带有或不带有SSH 的远程主机获取数据库转储,并可选择使用包含环境变量的.env 文件。

我计划使用该脚本进行自动数据库备份。请随时create issues / contribute - 希望这也对其他人有所帮助!

【讨论】:

【参考方案2】:

从@MichelFeldheim 的解决方案开始,我会使用:

$ ssh user@host "mysqldump -u user -p database | gzip -c" | gunzip > db.sql

【讨论】:

【参考方案3】:

这会通过 ssh 转储、压缩和流式传输到您的本地文件中

ssh -l user remoteserver "mysqldump -mysqldumpoptions database | gzip -3 -c" > /localpath/localfile.sql.gz 

【讨论】:

【参考方案4】:

ssh -f user@server.com -L 3306:server.com:3306 -N

然后:

mysqldump -hlocalhost > backup.sql

假设您也没有在本地运行 mysql。如果你这样做,你可以将端口调整为其他东西。

【讨论】:

我需要在一个命令中使用它,但这就是为什么我认为会有管道组合 这是在指定端口打开隧道吗?还没有看到这种方法 @Feldheim yes 创建一个隧道,所有通信都将被加密。至于这个问题的最佳答案,我喜欢你的方法。你得到我的支持。

以上是关于来自远程主机的 mysqldump的主要内容,如果未能解决你的问题,请参考以下文章

来自远程主机的WGET资源

来自远程服务器的android telnet控制台端口5554:连接被外国主机关闭

设置虚拟主机文件以托管来自远程服务器的源代码

连接到 ssh 远程主机(在 *** 网络中)超时

远程服务器数据交互技术:rsync,scp,mysqldump

UDP Socket:一个现有的连接被远程主机强行关闭