是否可以通过ssh连接从远程主机转储数据库,并在本地计算机上安装备份文件。
如果是这样,怎么能实现呢?
我假设它将是从ssh到转储的管道输出的某种组合,反之亦然但是无法弄明白。
答案 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
命令:
该脚本允许您从有或没有SSH
的远程主机获取数据库转储,并可选择使用包含环境变量的.env
文件。
我计划使用该脚本进行自动数据库备份。随意create issues / contribute - 希望这对其他人也有帮助!