是否可以通过 ssh 连接从远程主机转储数据库并在我的本地计算机上保存备份文件。
如果是这样,如何实现?
我假设它将是从 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
在远程主机上自动执行命令:
该脚本允许您从远程主机获取数据库转储,无论是否SSH
使用,并且可以选择使用.env
包含环境变量的文件。