linux下应用crontab对mysql数据库进行定时备份

mysql数据库提供了备份命令mysqldump,可以结合crontab命令进行定时备份。

我写了一个mysql_backup.sh的脚本,此脚本按照日期在当前目录下创建一个文件夹,同时在此目录下备份一个文件。内容如下:

#!/bin/bash
#设置mysql备份目录
folder=/home/lx/data_backup
cd $folder
day=`date +%Y%m%d`
rm -rf $day
mkdir $day
cd $day
#数据库服务器,一般为localhost
host=localhost
#用户名
user=root
#密码
password=password
#要备份的数据库
db=guizi_lx

#数据要保留的天数
days=3
mysqldump -h$host -u$user -p$password $db>backup.sql
#如何只是备份单表或者多张表,命令如下:
mysqldump -h$host -u$user -p$password $db 表名1 表名2 表名3 >backup.sql

zip backup.sql.zip backup.sql
rm backup.sql
cd ..
day=`date -d "$days days ago" +%Y%m%d`
rm -rf $day

另外,需要配置crontab。假设上述文件位置为/home/chzhao/bin/mysqlbackup.sh,则按以下命令配置crontab.

crontab -e

出现crontab的配置窗口,默认的编辑器是vim。
输入:

0 16 * * * /home/chzhao/bin/mysqlbackup.sh

表示每天的16点执行此脚本。

配置完毕之后,可以通过命令crontab -l查看crontab的配置情况。

二、数据库的还原

mysql命令还原

1、进入数据库备份好的文件夹

[root@CentOS 20200830]# ls

backup.sql.zip

2、解压出sql文件

[root@CentOS 20200830]# unzip backup.sql.zip

Archive: backup.sql.zip

inflating: backup.sql

3、查看解压出的文件:backup.sql是解压出的文件

[root@CentOS 20200830]# ls

backup.sql backup.sql.zip

4、还原数据库操作,回车以后同样会提示输入登录密码

[root@CentOS 20200830]# mysql -u root -p guizi_lx < backup.sql

Enter password:

[root@CentOS 20200830]#


第二种方式:使用source命令恢复数据库
第一步:进入mysql控制台,切换到我们想恢复数据的数据库,指令如: use 数据库名
第二步:使用source命令恢复,即我们备份时的.sql文件,
指令如:source /home/lzh/bak/test.sql

posted on 2021-05-26 13:43  北橘  阅读(154)  评论(0编辑  收藏  举报