mysql8.0自动备份加定时删除7天前的数据

环境说明:CentOS 7.5 64位

mysql8.0

【第一步】创建备份文件存储目录

mkdir /mysqldate

【第二步】查找mysql数据库文件所在目录
1.登陆mysql

mysql -u root -p #回车会提示你输入密码
Enter password:#输入你的数据库账号密码

2.执行查找命令

show variables like '%datadir%';
#查找的结果就是mysql数据库文件目录

【第三步】完成mysqldump配置

vi /etc/my.cnf
#未维护写入下列内容
[mysqldump]
host=localhost
user=账户名
password=账户密码

【第四步】创建一个执行sh文件

vi /usr/sbin/db_backmysql.sh

【第五步】写入下列内容

#mysql8.0自动备份脚本
#备份路径,第一步创建的文件夹绝对路径
backupdir=/opt/mysqldata
#日志路径,此项根据实际需求进行添加
mysql_backup_log="${backupdir}/mysql_backup.log"
#当前日期
newdate=$(date +"%Y-%m-%d")
#备份文件名称+文件具体存储路径
filename=$backupdir/mysql_$newdate.sql.gz
#脚本执行日志
#开始
echo "开始备份>> 当前时间:$(date "+%Y-%m-%d %H:%M:%S")">>"$mysql_backup_log"
#备份所有
/usr/bin/mysqldump  --add-drop-table --lock-tables  --all-databases --compact > $filename
#结束
echo "结束备份>> 结束时间:$(date "+%Y-%m-%d %H:%M:%S")>>备份路径:$filename">>"$mysql_backup_log"
#只保留最近七天的数据,七天前的备份数据删除
find $backupdir -name "mysql_*.sql.gz" -type f -mtime +7 -exec rm -rf {} \;

【第六步】添加权限

#需进入sh脚本所在目录,或者添加绝对路径地址
chmod u+rwx db_backmysql.sh

【第七步】运行sh脚本文件测试

#需进入sh脚本所在目录,或者添加绝对路径地址
./db_backmysql.sh

【第八步】查看执行结果

cd /opt/mysqldata #进入备份文件目录
ll #查看当前目录下的所有文件
vi mysql_backup.log #查看日志记录结果

【第九步】添加cron定时任务
crontab 相应配置引用,可跳转此连接查看相应介绍
1.检测cron是否安装,未安装请自行安装

rpm -qa |grep crontab

2.开启crond服务

systemctl start crond

3.检查crond服务状态

systemctl status crond

【第十步】配置脚本定时任务信息
1.打开cron配置文件

vi /etc/crontab

2.写入任务信息

#相应时间参数自行设置,不懂请自行查询crontab表达式代表信息
00 12 * * * root /usr/sbin/db_backmysql.sh

【第十一步】重启crond服务

systemctl restart crond

你可能感兴趣的:(mysql8.0自动备份加定时删除7天前的数据)