定时备份mysql数据库

最近在带linux CentOS7.8操作系统的服务器里误删了my sql数据库,恢复起来比较麻烦。还好有一个3月5号该数据库的备份,于是用3月5号的备份恢复了数据库的大部分内容。为了减少以后出现同样问题的损失,打算定时备份mysql数据库。在网上搜了一下,搜到了相关的内容,然后试了一下,但是不成功,接着查找问题,后来找到了问题原因,并解决了该问题。

网上的解决方法是编写一个shell脚本,用这个shell脚本来做备份。在crontab里面写上一条语句来定时执行这个shell脚本。shell脚本内容如下所示。

#!/bin/bash
 
 # MySQL连接参数
 DB_USER="root"
 DB_PASSWORD="123456"
 DB_NAME="db_name"
 
  # 备份文件路径和名称
  BACKUP_DIR="/your/backup/dir"
  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
    
    # 删除超过7天的备份文件,保留最近几次备份
    find $BACKUP_DIR -name "backup_*.sql" -type f -mtime +7 -exec rm {} \;

保存该脚本为/home/user_name/backup_script.sh。请注意,该脚本里的秘码、数据库名、备份保存目录等内容修改成你的实际值。接着给该脚本添加可执行权限。

        chomod +x backup_script.sh

接着创建备份文件目录:

        sudo mkdir -P /your/backup/dir/

然后用crontab -e 命令打开一个文件,加入如下一行(不包括注释行)。这时使用的是vi 编辑器。简单的vi命令包括:按 i 进入编辑模式,按Esc 键退出编辑模式,在命令模式下按   :wq 保存并退出vi 。vi 详细的使用说明请在游览器里搜索:vi怎么使用。

# 注释:分钟  小时  天   月  星期  执行命令

             0  2 *  *  *  /home/user_name/backup_script.sh

接着输入:wq 保存并退出该文件。

上面这句话的意思是每天凌晨2点执行backup_script.sh文件。为了测试这条语句能否执行,我修改了定时时间。再用crontab -e 命令打开一个文件,将原来的语句改成如下内容。

        */3  *  *  *  *  /home/user_name/backup_script.sh

这句话的意思是每三分钟执行一次backup_script.sh文件。

但是结果是没有看到备份文件。

于是我手动执行了备份的命令:

        sudo mysqldump -uroot -p123456 $db_name > /your/backup/dir/backup_20240422_181801.sql

这时看到了错误提示:找不到mysqldump。

于是在命令行界面输入:which mysqldump

找到了mysqldump命令具体位置:/usr/local/lighthouse/softwares/mariadb/bin/mysqldump

然后修改脚本文件的备份语句为下面两条语句。

   MYSQLDUMP="/usr/local/lighthouse/softwares/mariadb/bin/mysqldump"
   sudo $MYSQLDUMP -u$DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE

保存该脚本文件,等待三分钟左右就看到了备份文件。定时备份数据库成功。

然后再将定时备份语句改成每天凌晨2点进行备份的语句。实现了每天定时备份数据库。

由于我使用的操作系统,设置了我的用户使用sudo命令不需要输入密码。如果你的用户使用sudo命令需要输入密码,建议你用root用户定时执行该备份脚本。具体操作你可以试用一下,并查找问题的原因。

如果用root用户定时执行该脚本,则网上的原脚本不需要写上mysqldump命令所在的目录。这是因为root用户不需要路径 就能找到mysqldump命令。

相关推荐

  1. 定时备份mysql数据库

    2024-04-24 12:40:01       13 阅读
  2. Linux 定时任务备份MySQL数据库

    2024-04-24 12:40:01       40 阅读
  3. Linux系统定时备份mysql数据库

    2024-04-24 12:40:01       19 阅读
  4. 使用脚本定时备份MySql数据库文件

    2024-04-24 12:40:01       30 阅读
  5. entos定时自动备份mysql

    2024-04-24 12:40:01       35 阅读
  6. mysql数据库备份命令

    2024-04-24 12:40:01       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-24 12:40:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-24 12:40:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-24 12:40:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-24 12:40:01       18 阅读

热门阅读

  1. 100.qt qml-MultiPointTouchArea多点触摸缩放拖拽

    2024-04-24 12:40:01       12 阅读
  2. Mysql 8.0 的一些坑

    2024-04-24 12:40:01       13 阅读
  3. Eureka详解

    2024-04-24 12:40:01       14 阅读
  4. css-深度选择器-vue2

    2024-04-24 12:40:01       11 阅读
  5. 整理Meta GDC 2024 上关于XR、空间计算相关的分享

    2024-04-24 12:40:01       12 阅读
  6. 软件步骤2:OpenMVG特征提取(基于SFM场景)

    2024-04-24 12:40:01       11 阅读
  7. matlab代码

    2024-04-24 12:40:01       12 阅读
  8. 代码随想录算法Day34(2)||LeetCode134.加油站

    2024-04-24 12:40:01       11 阅读
  9. python基础知识四(列表、元组、函数)

    2024-04-24 12:40:01       12 阅读
  10. 【ARM Coresight 系列文章19.3 -- ARM DSU 120 Debug block】

    2024-04-24 12:40:01       12 阅读
  11. 【electron报错】 electron-buidler打包sqlite3问题汇总

    2024-04-24 12:40:01       13 阅读
  12. word删除单页的页眉

    2024-04-24 12:40:01       11 阅读
  13. ISBN信息查询api接口

    2024-04-24 12:40:01       13 阅读
  14. 算法开发固定三方库版本

    2024-04-24 12:40:01       12 阅读