前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《MySQL核心知识》第15章:自动备份与恢复MySQL数据库并发送Email邮件

《MySQL核心知识》第15章:自动备份与恢复MySQL数据库并发送Email邮件

作者头像
冰河
发布2022-12-01 17:18:48
5130
发布2022-12-01 17:18:48
举报
文章被收录于专栏:冰河技术

大家好,我是冰河~~

今天是《MySQL核心知识》专栏的第15章,今天为大家系统的讲讲如何自动备份与恢复MySQL数据库并发送Email邮件,希望通过本章节的学习,小伙伴们能够举一反三,彻底掌握自动备份与恢复MySQL数据库并发送Email邮件相关的知识。好了,开始今天的正题吧。

背景案例

一个博客,一个网站最重要的就是数据库,所以经常备份数据是必须的.尽管 WordPress 有定时备份数据的插件,但只能备份当前的博客,不够灵活.适合个人小小博客,对于一些网站来说,就不适合了.现在很多人都拥有多个网站,showfom就有几个网站.每个网站都装个插件就比较麻烦了。况且不是每个网站都是WordPress 的 。

所以写了个自动备份mysql数据库的脚本,再加上gmail这个G级邮箱,备份多少数据都可以了。下面是代码:

代码语言:javascript
复制
mysqldump -uuser -ppassword --databases db1 db2 db3 > /home/website/backups/databackup.sql
tar zcf /home/website/backups/databackup.sql.tar.gz /home/website/backups/
echo "主题:数据库备份" | mutt -a /home/website/backups/databackup.sql.tar.gz -s "内容:数据库备份" www@gmail.com
rm -r /home/website/backups/*

我们也可以按照日期生成备份的SQL文件,具体如下:

代码语言:javascript
复制
ls_date=`date +%Y%m%d`
fileName=/home/website/backups/databackup_$ls_date.sql
mysqldump -uuser -ppassword --databases db1 db2 db3 > $fileName

将上面的代码保存为automysqlbackup.sh

然后利用crontab 实现动备份,在服务器命令行输入如下命令。

代码语言:javascript
复制
crontab -e

最好是使用如下命令。

代码语言:javascript
复制
vim /etc/crontab

输入以下内容。

代码语言:javascript
复制
00 00 * * * /home/website/automysqlbackup.sh

这样就实现了每天00:00自动备份mysql数据库并发送到Email。

脚本说明

再简单的说明下备份并发送邮件的脚本。

代码语言:javascript
复制
mysqldump -uuser -ppassword --databases db1 db2 db3 > /home/website/backups/databackup.sql
tar zcf /home/website/backups/databackup.sql.tar.gz /home/website/backups/
echo "主题:数据库备份" | mutt -a /home/website/backups/databackup.sql.tar.gz -s "内容:数据库备份" www@gmail.com
rm -r /home/website/backups/*

第一句是一次性备份多个数据库,这个要用root权限的用户才可以的。-u后面的是数据库用户名 -p后面的是数据库密码 无需空格 db1 db2 db3为需要备份的数据库名。如果数据库用户名没有root这个权限,可以改为如下所示。

代码语言:javascript
复制
mysqldump -uuser -ppassword db1 > /home/website/backups/db1.sql
mysqldump -uuser -ppassword db2 > /home/website/backups/db1.sql
mysqldump -uuser -ppassword db3 > /home/website/backups/db1.sql

第二句是将 backups 文件夹里面的数据文件压缩为文件名:databackup.sql.tar.gz

第三句是将压缩了的数据库文件发送到指定的邮箱。

其中的主题:数据库备份 ,就是邮件的主题, 内容:数据库备份,就是邮件的内用,

/home/website/backups/databackup.sql.tar.gz 为附件

www@gmail.com为要发送的Email。

此时,我们完成了自动备份的功能,接下来就是要恢复数据库的问题了。

数据恢复

恢复数据库很简单,只需要我们登录数据库后,利用“source 数据库脚本”的命令即可恢复数据库,比如:

代码语言:javascript
复制
mysql -uroot -proot
source /home/website/backups/databackup.sql

好了,今天就到这儿吧,我是冰河,我们下期见~~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 冰河技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景案例
  • 脚本说明
  • 数据恢复
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档