Linux系统MySQL自动备份

作者:动易软件 来源:网络 点击数: 发布时间:2022年12月21日

1、配置自动备份环境

1.1、在data目录下新建存放备份数据的文件夹

mkdir -p /data/backup/mysql

#进入backup目录创建mysql_backup.sh的脚本并且填充数据

vi mysql_backup.sh


1.2、编辑mysql_backup.sh脚本并添加如下数据        

#!/bin/bash

#db_user='root'

#db_password=`cat /data/www/mysql_password`

#数据库名称

db_name='test'

#生成备份存放的目录

backup_dir='/data/backup/mysql/'

#生成日期

current_time=$(date +'%Y-%m-%d_%H%M%S')

filepath=$backup_dir$current_time'.sql.gz'

#此处没有使用 $db_password $db_user, 已经写入到配置文件中

echo '开始导出数据库...'

#/etc/my.cnf这个是mysql具体的配置文件,根据自己实际安装路径填写

mysqldump --defaults-extra-file=/etc/my.cnf  $db_name | gzip > $filepath

echo '导出成功,文件名为: '$filepath


1.3、找到mysql的配置文件my.cnf并编辑

[mysqldump]

max_allowed_packet= 400M

host=127.0.0.1

user=root

password='root123' # 设置为自己的密码例如我的为root123

[mysql]

host=127.0.0.1

#mysql账号

user=root

#mysql密码

password='root123'


1.4 脚本增加权限

chmod +x ./mysql_backup.sh


1.5 TEST 测试是否可以导出成功

sh ./mysql_backup.sh

# 查看一下结果

ll ./mysql


2.1、在终端输入如下命令

crontab -e

#粘贴下面的内容, 大家根据自己的需要更改就可以了

0 1,12 * * * /data/backup/mysql_backup.sh # 每天凌晨1点,中午12点备份一次数据

#大家可以先使用下面这条做为测试哦,1分钟跑一次,我们只需要查看 ll /data/backup/mysql 这个文件夹就好了

*/1 * * * * /data/backup/mysql_backup.sh


2.2、crontab的停止和启动命令

启动:systemctl crond start

停止:  systemctl crond stop