Centos7定时备份MySQL数据库

步骤一:创建数据库备份脚本

  1. 创建数据库密码文件 (例如 my.password):

    使用-u -p参数会提示不安全(命令执行记录会明文显示账号密码),因此需要建立此文件

[client]
user=root
password=123456
  1. 创建备份脚本 (例如 backup_mysql.sh):
#!/bin/bash

# MySQL数据库连接信息
DB_NAME="test"

# 备份保存路径和文件名
BACKUP_DIR="/home/BACK/SQL"
DATE=$(date +"%Y%m%d%H%M%S")
BACKUP_FILE="$BACKUP_DIR/backup-$DATE.sql.gz"

# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR

# 使用mysqldump命令备份数据库,并压缩备份文件
mysqldump --defaults-extra-file=/home/BACK/sh/my.password $DB_NAME | gzip > $BACKUP_FILE

# 清理旧备份,保留最近的几个备份文件(保留一个月的备份)
find $BACKUP_DIR -name "backup-*.sql.gz" -mtime +30 -exec rm {} \;
  1. 设置定时任务

编辑 crontab

crontab -e
  1. 添加定时任务 ,例如每天凌晨执行备份:
0 0 * * * /bin/bash /path/to/backup_mysql.sh

这将在每天的午夜 0 点(即凌晨)执行 backup_mysql.sh 脚本。

  1. 设置文件权限

确保数据库密码文件 (my.password)只有合适的权限,例如:

chmod 600 /path/to/password/my.password.txt

这样做可以确保只有脚本本身能够读取这个文件,提高安全性。

注意事项:

  • 密码文件安全性 :密码文件应该只能被允许访问备份脚本的用户和管理员读取。使用 chmod 命令确保文件权限设置正确。
  • 备份周期 :定期清理旧的备份文件以节省存储空间。在脚本中使用 find 命令可以轻松地删除早于30天的备份文件。
  • 日志记录 :可以将脚本输出重定向到日志文件以便后续检查和故障排除。

标题:Centos7定时备份MySQL数据库
作者:admin
地址:http://www.mjdg.store/articles/2024/08/02/1722561201206.html

    评论
    0 评论
avatar

取消