Linux :mysql数据库自动备份

239 阅读2分钟

前言

当项目发布到服务器上后,接下来考虑到就是如何做好数据库的数据备份。为的就是防止服务器突然异常崩溃,而导致的数据丢失问题。

但身为一个专业开发人士,对运维这一块也只是简单的了解,会一些常规的操作,比如Liunx上的安装、修改端口,项目部署等等操作。很多东西都需要现学现卖,一点一点的去学习,去搞。所以接下来的会把mysql数据库如何做好自动备份的步骤,详细的介绍给大家,让大家少走弯路。

使用shell脚本进行数据库的定时备份

确定备份数据库

首先,我们要确定好备份的数据库

进入数据库 输入指令

 mysql -uroot -p

在这里插入图片描述

查看数据库有哪些数据库:

输入指令:

show databases;

在这里插入图片描述

这里,我们选择 vrserver 数据库进行备份。

查看数据库中的数据

首先使用数据库 :

 use vrserver;

然后查询这个数据库下的所有表:

  show tables;

备份shell脚本

#!/bin/bash
# 1.备份目录
BACKUP=/data/backup/db
# 当前时间
DATETIME=$(date +%Y-%m-%d_%H%M%S)
echo $DATETIME
# 数据库的地址
HOST=localhost
# 数据库的用户名
DB_USER=root
#数据库的密码
DB_PW=root
#备份的数据库名
DATABASE=dysmysql

#创建备份目录 如果不存在就创建
[ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"

# 备份数据库
mysqldump -u${DB_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz

# 将文件处理成 tar.gz
cd ${BACKUP}
tar -zcvf $DATETIME.tar.gz ${DATETIME}
# 删除对应的备份目录
rm -rf ${BACKUP}/${DATETIME}


# 删除十天前的备份文件
find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "备份数据库${DATABASE} 成功"

执行该脚本 :

sh mysql_db_backup.sh

在这里插入图片描述

定时shell脚本

输入指令:

输入cron 脚本:

每天凌晨执行一次:

0 0 0 * * ?  /root/mysql_backup/mysql_db_backup.sh

大家可以先用这个测试,每分钟跑1次:

*/1 * * * *  /root/mysql_backup/mysql_db_backup.sh

当定时器执行时,它会给你发个邮件:

在这里插入图片描述

根据它的提示进入进入到该文件内,即可看到定时器执行情况:

在这里插入图片描述 至此大功告成!!!

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 21 天,点击查看活动详情