MySQL数据库从远程主机转储而没有临时文件

前端之家收集整理的这篇文章主要介绍了MySQL数据库从远程主机转储而没有临时文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试在我的工作中实现数据库备份cron(其他解决方案欢迎)但我有一个小问题:

我有一个空间超过10GB的大型数据库,当前的vm没有空间将它存储在mysql创建的临时文件中.

我知道我可以将MysqLdump与主机参数一起使用,但我的问题是,当这样做时,MysqLdump生成的临时文件会保留在运行它的机器上还是留在数据库服务器上?

更新:
我忘了提到我正在尝试备份一个网站网络,其中一些是在防火墙后面(需要VPN访问),有些需要服务器跳转才能到达数据库服务器.

最佳答案
您可以从存档主机运行shell脚本,您可以在其中使用数据库服务器交换无密码的ssh密钥.这使您可以直接通过ssh传输文件,而无需在远程数据库服务器上创建任何临时文件

ssh -C myhost.com MysqLdump -u my_user --password=bigsecret \ 
  --skip-lock-tables --opt database_name > local_backup_file.sql

显然,有一些方法可以在命令行上保护该密码,但这种方法可以完成您想要的任务.此方法的一个优点是它不需要存档主机访问远程主机上的端口3306.

This guy’s version很酷,因为它在通过网络传输之前还会动态压缩数据,然后在将数据加载到本地数据库之前将其解压缩.

ssh me@remoteserver 'MysqLdump -u user -psecret production_database | \
  gzip -9' | gzip -d | MysqL local_database

但这就是为什么我的版本使用ssh -C,它启用自己的压缩算法并避免额外的gzip管道.

原文链接:https://www.f2er.com/mysql/432844.html

猜你在找的MySQL相关文章