我需要每天备份一个MySQL数据库,最好让它自己发送电子邮件到我选择的电子邮件地址。
有可能这样做吗?生成备份文件的SQL是什么?如何将此文件作为“附件”添加到发送的电子邮件中?
感谢您的帮助,我真的需要进行这些备份!
我知道如何通过cronjob调用脚本,所以日常事情不是问题。
答案 0 :(得分:10)
只需转到命令shell并运行mysql_dump命令,如下所示:
mysqldump <DB name> -u<user> -p<password> | gzip -c > /backup/`date +%Y-%m-%d`.sql.gz
从这一点开始,你可以使用mail命令(我不知道附带文件的语法)。
答案 1 :(得分:3)
您可以使用exec
在命令行中调用 mysqldump ,以创建数据库备份到您选择的文件。
mysqldump -u username -p password databaseName > databaseFile.sql
然后在PHP中,您可以找到该文件并上传为附件并将其发送出去。
我不知道通过电子邮件发送数据库是多么安全,如果有其他解决方案我可以建议,我愿意。
根据Tom的评论,请查看PHP Zlib和creating GZIP files "on the fly"以通过PHP压缩文件。
答案 2 :(得分:2)
自动MySql备份脚本
此脚本查找服务器上的所有MySQL数据库,单独备份它们,压缩它们,并将文件存储在指定目录中和/或通过电子邮件发送给您。它自首次公开发布以来已经更新,并包含几个新功能。
http://www.dagondesign.com/articles/automatic-mysql-backup-script/
答案 3 :(得分:0)
我以前用过
MySQL数据库备份 ===================== http://restkultur.ch/personal/wolf/scripts/db_backup
然而它有点老了,我不确定他们是否升级了版本等。但它运作良好,并提供了很多备份选项(需要多少天,几个月,以及在哪里存储文件 - 它可以通过FTP上传到另一台服务器以实现冗余安全性。)