当前位置:   article > 正文

centos定时自动备份mysql_centos&如何定时备份mysql数据库

centos&如何定时备份mysql数据库

Centos定时自动备份mysql

1.先安装相关工具

共两个,一个是cronie 一个是 mysql-client(一般装完mysql就自带的有)

sudo yum install cronie mysql-client
  • 1

2.创建dump.sh命令文件

# vim mysql-db-dump.sh
  • 1

3.编写命令文件规则

这里使用的是全库备份

#!/bin/bash

# 定义数据库用户名和密码
DB_USER='root'
DB_PASS='你的数据库密码'

# 定义要备份的数据库名称 -- 如果需要备份数据库可以打开这里
# DATABASE_NAME='xxxx'

# 定义备份文件存储的位置和名称
BACKUP_DIR='/root/shell/resource'
BACKUP_FILE=$BACKUP_DIR/${DATABASE_NAME}_$(date +\%Y-\%m-\%d_\%H:\%M:\%S).sql.gz

# 使用 mysqldump 备份数据库并gzip压缩
# mysqldump -u$DB_USER -p$DB_PASS $DATABASE_NAME | gzip > $BACKUP_FIL  -- 备份单个数据库

# 使用 mysqldump 备份所有数据库并gzip压缩
mysqldump --all-databases -u$DB_USER -p$DB_PASS | gzip > $BACKUP_FILE

echo "Backup file created successfully at: $BACKUP_FILE"

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

4.文件夹路径

[root@iZdac72ss4rmhrZ shell]# ll
total 8
-rwxrwxrwx 1 root root  629 Nov 21 16:08 mysql-db-dump.sh
drwxr-xr-x 2 root root 4096 Nov 21 16:14 resource
[root@iZdac72ss4rmhrZ shell]# pwd
/root/shell
[root@iZdac72ss4rmhrZ shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

PS: 记得给权限 chmod +x ./**

5.添加crontab任务

# crontab -e
  • 1

6.编写cron规则

在 crontab 中安排在每天中午 12 点和晚上 12 点执行自动备份任务,您可以使用以下 cron 表达式

0 12 * * * /root/shell/mysql-db-dump.sh
0 0 * * * /root/shell/mysql-db-dump.sh
  • 1
  • 2

在这两个 cron 表达式中:

  • 0 表示分钟,由于我们希望在整点运行任务,因此将其设为 0。
  • 120 分别代表中午 12 点和晚上 12 点。
  • * 表示任何值都匹配,因此 * 在天、月和星期字段上表示无论何时。
  • 最后一个字段是要运行的命令或脚本的路径,例如 /path/to/mysqldump.sh

请注意,cron 表达式的格式为 分 小时 日 月 周 命令,其中每个字段都有相应的取值范围。如果您需要更多关于 cron 表达式的详细信息,可以在 crontab 手册页中查找相关信息,或者查阅在线资源。

此外,由于您可能需要在备份期间保留其他数据库操作,因此建议在脚本中添加必要的锁定机制以防止数据不一致的情况发生。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/882646
推荐阅读
相关标签
  

闽ICP备14008679号