【发布时间】:2012-11-15 16:52:52
【问题描述】:
是否可以通过 ssh 连接从远程主机转储数据库并将备份文件保存在我的本地计算机上。
如果是这样,如何实现?
我假设它将是从 ssh 到转储的管道输出的某种组合,反之亦然,但无法弄清楚。
【问题讨论】:
-
我在这里回复了类似的答案:stackoverflow.com/questions/6564882/…
是否可以通过 ssh 连接从远程主机转储数据库并将备份文件保存在我的本地计算机上。
如果是这样,如何实现?
我假设它将是从 ssh 到转储的管道输出的某种组合,反之亦然,但无法弄清楚。
【问题讨论】:
我创建了一个script,以便使用Michel Feldheim 提供的答案作为起点,更轻松地在远程主机上自动执行mysqldump 命令:
该脚本允许您从带有或不带有SSH 的远程主机获取数据库转储,并可选择使用包含环境变量的.env 文件。
我计划使用该脚本进行自动数据库备份。请随时create issues / contribute - 希望这也对其他人有所帮助!
【讨论】:
从@MichelFeldheim 的解决方案开始,我会使用:
$ ssh user@host "mysqldump -u user -p database | gzip -c" | gunzip > db.sql
【讨论】:
这会通过 ssh 转储、压缩和流式传输到您的本地文件中
ssh -l user remoteserver "mysqldump -mysqldumpoptions database | gzip -3 -c" > /localpath/localfile.sql.gz
【讨论】:
ssh -f user@server.com -L 3306:server.com:3306 -N
然后:
mysqldump -hlocalhost > backup.sql
假设您也没有在本地运行 mysql。如果你这样做,你可以将端口调整为其他东西。
【讨论】: