来自远程主机的 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的主要内容,如果未能解决你的问题,请参考以下文章
来自远程服务器的android telnet控制台端口5554:连接被外国主机关闭