linux系统定时备份MySQL数据库

项目中数据库可能因各种原因出现数据丢失等问题,需定时备份。可使用mysqldump写脚本,由Linux的crontab定时执行。本文介绍了在Linux系统中为MySQL数据库emp创建备份脚本、授权、设置定时任务的具体操作,还提及定时删除旧备份,最后指出备份未包含函数和存储过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个项目的基础便是数据库,但是可能因为某些原因会导致数据丢失,或数据库结构变化,严重一点的或造成数据库删除。为了以防万一,这时候就需要我们定时进行数据库备份,但是如果人来操作的话会是一个比较麻烦的工程,这时我们可以使用mysqldump写个脚本,由Linux的crontab来定时执行。下面看看具体操作过程。
假如在我的数据库中有一个emp的数据库。
1.在linux系统中自定义一个文件夹,在我的服务器上我放在了/zhb/backup
2.在/zhb/backup下面建一个bkemp.sh的脚本文件
3.使用vi命令 vi ./bkemp.sh 写入脚本

#!/bin/bash
mysqldump -uusername -ppassword emp> /home/backup/emp$_(date +%Y%m%d_%H%M%S).sql
#!/bin/bash
mysqldump -uusername -ppassword emp | gzip > /home/backup/emp$_(date +%Y%m%d_%H%M%S).sql.gz

上面的一句是生成一个sql文件,下面一句是生一个sql的压缩包
4.给脚本文件授权:chmod +777 bkemp.sh
5.输入命令 crontab -e ,这时后会进入一个和vi编辑器一样的界面,输入

*/1 * * * *

上面这行代表每分钟执行一次。
等几分钟我们来看看是否每分钟进行一次备份。
在这里插入图片描述大功告成,当然我们实际应用中不需要每分钟进行数据库的备份,具体的crontab表达式可根据实际进行编写。
6.如果一直备份,那会消耗大量的服务器内存,因此需要定时的删除一些时间比较久的备份,只需要在bkemp.sh文件中添加如下代码即可。

#删除15天之前的备份
find /home/backup -name emp"*.sql.gz" -type f -mtime +15 -exec rm -rf {} \; > /dev/null 2>&1
#删除1分钟之前的备份
find /home/backup -name emp"*.sql.gz" -type f -mmin +1 -exec rm -rf {} \; > /dev/null 2>&1

这样就可以删除备份的gz文件了,如果删除sql,只需要改成.sql结尾即可。
我们将sql拿出来执行一下,看看是否备份成功,我们发现数据库结构和数据以及视图都进行备份了,但是函数和存储过程并没有进行备份。
欢迎大家留言交流如何进行函数及存储过程的备份~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java旅途

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值