来自远程主机的mysqldump

是否有可能通过SSH连接从远程主机转储数据库,并在我的本地计算机上有备份文件。

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

我假设这将是pipe道输出从ssh的一些组合输出,反之亦然,但不能弄明白。

这将转储,压缩和通过SSH流到您的本地文件

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

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

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

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

然后:

mysqldump -hlocalhost > backup.sql

假设你也没有在本地运行mysql。 如果你这样做,你可以调整端口到别的东西。

我已经创建了一个脚本 ,使用Michel Feldheim提供的答案作为起点,使远程主机上的mysqldump命令自动化变得更加容易:

mysqldump的远程

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

我打算使用脚本进行自动数据库备份。 随意创造问题 / 贡献 – 希望这可以帮助别人!