如何使用 PHP 以发送邮件的方式自动定时备份 MySQL 数据库表数据

发布于 2020-11-14 20:57:16 字数 1435 浏览 1497 评论 0

本方法只适用数据量较少的网站,数据量大的网站请考虑其他可行方案!

此脚本将向您发送一封电子邮件,附带一个 .sql 文件,从而使您能够轻松地备份特定的表。如果你有一个数据库驱动的网站,你的 MySQL 信息是最有价值的,您甚至可以设置一个电子邮件帐户来接收这些备份。

首先,如果您将脚本放置在一个非 Web 访问的文件夹中,并在其上运行每日 cron 自动定时作业,此脚本的工作效果最好。Cron 是一个服务器工具,可以定期或在指定的时间运行脚本,因此您不需要在浏览器中调用它们。

这个脚本的已知限制:如果您有一个超过2mb的大型数据库表,您可能会遇到php超时和php邮件附件限制。

// Create the mysql backup file
// edit this section
$dbhost = "yourhost"; // usually localhost
$dbuser = "yourusername";
$dbpass = "yourpassword";
$dbname = "yourdb";
$sendto = "Webmaster <webmaster@yourdomain.com>";
$sendfrom = "Automated Backup <backup@yourdomain.com>";
$sendsubject = "Daily Mysql Backup";
$bodyofemail = "Here is the daily backup.";
// don't need to edit below this section

$backupfile = $dbname . date("Y-m-d") . '.sql';
system("mysqldump -h $dbhost -u $dbuser -p$dbpass $dbname > $backupfile");

// Mail the file

include( 'Mail.php' );
include( 'Mail/mime.php' );

$message = new Mail_mime();
$text = "$bodyofemail";
$message->setTXTBody( $text );
$message->AddAttachment( $backupfile );
$body = $message->get();
$extraheaders = array( "From"=> $sendfrom, "Subject"=> $sendsubject );
$headers = $message->headers( $extraheaders );
$mail = Mail::factory( "mail" );
$mail->send( $sendto, $headers, $body );

// Delete the file from your server
unlink($backupfile);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

遂心如意

文章 0 评论 0

5513090242

文章 0 评论 0

巷雨优美回忆

文章 0 评论 0

junpengz2000

文章 0 评论 0

13郎

文章 0 评论 0

qq_xU4RDg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文