本文实例讲述了MySQL定时备份数据库操作。分享给大家供大家参考,具体如下:
1. 查看mysqldump
1
2
|
root@laowang:/ # which mysqldump /usr/bin/mysqldump |
2. 编写脚本
编辑my.cnf文件, 指定账号与密码, 然后在脚本中引用
1
2
3
4
5
|
root@laowang:/ # vim /etc/my.cnf [mysqldump] user=root password=root |
脚本文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
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. 定时计划
1
2
3
|
root@laowang:/ # crontab -e # m h dom mon dow command 10 10 * * * /var/backups/mysql_backup .sh |
ctrl+X 退出
y 保存修改
希望本文所述对大家MySQL数据库计有所帮助。
原文链接:https://blog.csdn.net/qq_36261130/article/details/104990614