mysql创建备份文件_如何创建一个MySQL备份及自动清理计划

数据库的备份是十分有必要的。

建议你做的事情是开启数据库的binlog,并定时使用mysqldump工具备份需要备份的库。

可以参考下面的方法做dump方式备份计划。

303ea3945bbd8a655d9928cf3e0e88b6.png

创建备份MySQL用户

假设用作备份任务的MySQL用户为backup,其密码为12345。

# 创建一个只允许本地登录的backup用户,密码为12345。

CREATE USER 'backup'@'localhost' IDENTIFIED BY '12345';

# 增加EVENT,LOCK TABLES,SELECT,SHOW DATABASES等权限,这是MySQL官方工具建议的BackupAdmin角色应该拥有的权限。

GRANT EVENT,LOCK TABLES,SELECT,SHOW DATABASES ON *.* TO 'backup'@'localhost' ;

# 刷新权限,使刚添加的用户生效。

FLUSH PRIVILEGES;

创建备份及清理脚本

#!/bin/bash

# 进入备份文件目录,本目录需要提前设置

cd /var/bak

# 根据当前时间构造文件名(规则为:本年度第几天-年月日-时分秒)

nowTime=`date +%j-%Y%m%d-%H%M%S`

# 备份全部数据库(-A),其中backup为MySQL用户名,12345为密码。

mysqldump -ubackup -p12345 -A > $nowTime.sql

# 使用xz压缩备份的sql文件

xz -9 $nowTime.sql

# 使用find查找10天前创建的文件后删除(+10为十天前,可自定义)

find ./ -mtime +10 -name "*.sql.xz" -type f -exec rm -rf {} \;

创建计划任务

假设我的备份脚本文件名为sqlbak.sh,目录为/shell/。

每天凌晨3点整执行备份任务,则需要加入如下crontab规则。

crontab -e 编辑crontab。

添加规则

0 3 * * * sh /shell/sqlbak.sh

恢复备份

假设备份后的文件为070-20150311-131417.sql.xz。

首先需要解压文件

xz -d 070-20150311-131417.sql.xz

会得到070-20150311-131417.sql文件

执行下面命令进行恢复(会覆盖所有数据):

mysql -uroot -p < 070-20150311-131417.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值