来自远程主机的mysqldump

时间:2012-11-27 23:10:07

标签: mysql linux ssh

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

如果是这样,怎么能实现呢?

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

4 个答案:

答案 0 :(得分:64)

这会将ssh转储,压缩和流式传输到本地文件

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

答案 1 :(得分:16)

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

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

答案 2 :(得分:3)

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

然后:

mysqldump -hlocalhost > backup.sql

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

答案 3 :(得分:1)

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

  

mysqldump-remote

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

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