欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL定时备份数据库操作示例

程序员文章站 2022-11-21 09:03:33
本文实例讲述了mysql定时备份数据库操作。分享给大家供大家参考,具体如下:1. 查看mysqldumproot@laowang:/# which mysqldump/usr/bin/mysqldum...

本文实例讲述了mysql定时备份数据库操作。分享给大家供大家参考,具体如下:

1. 查看mysqldump

root@laowang:/# which mysqldump
/usr/bin/mysqldump

2. 编写脚本

编辑my.cnf文件, 指定账号与密码, 然后在脚本中引用

root@laowang:/# vim /etc/my.cnf

[mysqldump]
user=root
password=root

脚本文件

root@laowang:/var/backups# vim mysql_backup.sh
#!/bin/sh
#################################################
# 备份数据库
#################################################
#mysqldump备份程序执行路径
dump=/usr/bin/mysqldump
#备份文件存放路径
out_dir=/var/database
#备份文件所属权限
linux_user=root
#要备份的数据库名字
db_name=laowang
#备份的天数,之前的删除
days=1

#进入备份存放目录
cd $out_dir
#获取当前系统时间
date=`date +%y_%m_%d`
#备份数据库的文件名
out_sql=$db_name"_$date.sql"
#最终保存的数据库备份文件名
tar_sql=$db_name"_$date.tar.gz"
#开始执行备份数据库
$dump --defaults-extra-file=/etc/my.cnf --default-character-set=utf8 $db_name > $out_sql

#压缩为.tar.gz格式
tar -czf $tar_sql ./$out_sql
#删除.sql格式的备份文件
rm $out_sql
#更改备份数据库文件的所有者
chown $linux_user:$linux_user $out_dir/$tar_sql
#删除30天前的备份文件(注意:{} \;中间有空格)
find $out_dir -name "*.tar.gz" -type f -mtime +$days -exec rm -f {} \;

3. 定时计划

root@laowang:/# crontab -e
# m h dom mon dow  command
10 10 * * * /var/backups/mysql_backup.sh

ctrl+x 退出

y 保存修改