以编程方式通过PHP备份(和通过电子邮件发送)完整的MySQL数据库

时间:2010-02-03 15:53:14

标签: php sql mysql database backup

我需要每天备份一个MySQL数据库,最好让它自己发送电子邮件到我选择的电子邮件地址。

有可能这样做吗?生成备份文件的SQL是什么?如何将此文件作为“附件”添加到发送的电子邮件中?

感谢您的帮助,我真的需要进行这些备份!

我知道如何通过cronjob调用脚本,所以日常事情不是问题。

4 个答案:

答案 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 Zlibcreating 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上传到另一台服务器以实现冗余安全性。)