mysql数据定时生成备份文件

在MySQL中,可以使用 mysqldump 命令来定时生成数据库备份文件。你可以将该命令与定时任务工具(如cron)结合使用,这里使用的是1penal第三方管理平台去执行,方便的操作,有兴趣的可以研究一下,以便自动执行备份操作。以下是一个基本的步骤:

  1. 创建备份脚本: 创建一个Shell脚本,例如 backup_script.sh,其中包含以下内容:

    #!/bin/bash 
    # MySQL连接信息 
    DB_USER="your_mysql_user" 
    DB_PASSWORD="your_mysql_password" 
    DB_NAME="your_database_name"
     
    # 备份文件保存路径 
    BACKUP_DIR="/path/to/backup/directory" 
    
    # 备份文件名 
    BACKUP_FILE="$BACKUP_DIR/backup_$(date +\%Y\%m\%d\%H\%M\%S).sql"
     
    # 使用mysqldump进行备份 
    mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE 
    
    # 压缩备份文件(可选) 
    gzip $BACKUP_FILE

    替换 your_mysql_useryour_mysql_passwordyour_database_name/path/to/backup/directory 为你的MySQL用户名、密码、数据库名称和备份文件保存路径。此脚本将使用 mysqldump 导出数据库并保存到指定路径。下面是我的示例,可以

    #!/bin/bash
    # 使用 which 命令找到 mysqldump 的路径
    MYSQLDUMP_PATH=/opt/mysql-8.0.32/bin/mysqldump
    
    # MySQL数据库连接信息
    DB_USER="root"
    DB_PASSWORD="XXXXX"
    DB_HOST="10.5.2.28"  # 或者你的MySQL主机地址
    DB_PORT="30306"       # MySQL端口,默认是3306
    
    # 备份文件保存目录
    BACKUP_DIR="/opt/mysql-backup"
    
    # 远程备份服务器信息
    REMOTE_SERVER="10.5.2.100"
    REMOTE_USER="root"
    REMOTE_DIR="/opt/backup/mysql"
    REMOTE_PASSWORD="XXXXXX"
    
    # 备份文件名(以日期时间命名)
    DATE=$(date +"%Y%m%d%H%M%S")
    BACKUP_FILE="$BACKUP_DIR/backup-$DATE.sql"
    
    # mysqldump命令执行数据库备份
    $MYSQLDUMP_PATH -h $DB_HOST -P $DB_PORT -u$DB_USER -p$DB_PASSWORD --databases account> $BACKUP_FILE
    
    # 检查备份是否成功
    if [ $? -eq 0 ]; then
      echo "数据库备份成功,备份文件保存在: $BACKUP_FILE"
    
      # 将备份文件传输到远程服务器
      sshpass -p $REMOTE_PASSWORD  scp $BACKUP_FILE $REMOTE_USER@$REMOTE_SERVER:$REMOTE_DIR
    
      # 检查传输是否成功
      if [ $? -eq 0 ]; then
        echo "备份文件成功传输到远程服务器"
      else
        echo "备份文件传输到远程服务器失败"
      fi
    
    else
      echo "数据库备份失败"
    fi
    

    这里文件传输的时候还需要注意sshpass在机器上是否有相关的安装

  2. 为脚本添加执行权限: 在终端中执行以下命令,为脚本添加执行权限:

  3. chmod +x backup_script.sh
  4. 设置定时任务: 使用定时任务工具(如cron)定期运行备份脚本。打开cron表编辑器:

    crontab -e

    添加一行类似于以下的定时任务:

    0 2 * * * /path/to/backup_script.sh

    这将在每天凌晨2点执行备份脚本。你可以根据需要调整cron表达式。

  5. 我使用的是1panel(也是依托数据库所在服务器的系统的,有兴趣的可以研究一下)

请确保在执行定时任务时使用适当的安全性措施,例如确保脚本中的数据库凭据得到保护。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值