40

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

如果是这样,如何实现?

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

4

4 回答 4

70

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

ssh -l user remoteserver "mysqldump -mysqldumpoptions database | gzip -3 -c" > /localpath/localfile.sql.gz 
于 2012-11-27T23:26:29.920 回答
21

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

$ ssh user@host "mysqldump -u user -p database | gzip -c" | gunzip > db.sql
于 2015-09-01T10:54:14.377 回答
3

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

然后:

mysqldump -hlocalhost > backup.sql

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

于 2012-11-27T23:14:45.160 回答
2

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

mysqldump-远程

该脚本允许您从远程主机获取数据库转储,无论是否SSH使用,并且可以选择使用.env包含环境变量的文件。

我计划使用该脚本进行自动数据库备份。随意创建问题/贡献- 希望这对其他人也有帮助!

于 2017-11-16T20:58:06.227 回答