自动备份mysql数据库

最近项目上线后,有些数据丢失没有找回来。经过讨论后,决定加一个服务器数据库自动备份的功能。

通用实现步骤

整个过程可以概括为三步:

  1. 编写备份脚本:创建一个包含备份命令的脚本文件(.bat 批处理)。
  2. 测试脚本:手动运行脚本,确保它能成功生成备份文件。
  3. 配置任务计划程序:设置 Windows 任务计划程序,让它在指定时间自动执行这个脚本。

针对 MySQL 的详细配置

shell 复制代码
1. 编写备份脚本 (backup_mysql.bat)
创建一个文本文件,将后缀名改为 .bat,写入以下内容:
@echo off
:: 设置数据库连接信息
set host=127.0.0.1
set username=root
set password=你的密码
set db_name=你的数据库名

:: 设置备份存放路径
set backup_path=C:\db_backup\

:: 生成带时间戳的文件名,例如:你的数据库名_20231027_030001.sql
set datetime=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
set datetime=%datetime: =0%
set backup_file=%backup_path%%db_name%_%datetime%.sql

:: 执行备份 (注意 mysqldump 的路径可能需要根据你的安装位置调整)
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe" -u%username% -p%password% -h%host% %db_name% > %backup_file%

:: (可选) 使用 7-Zip 压缩备份文件,需要先安装 7-Zip
:: "C:\Program Files\7-Zip\7z.exe" a %backup_file%.zip %backup_file%
:: del %backup_file%

:: (可选) 删除 7 天前的旧备份文件
forfiles /p %backup_path% /s /m *.sql /d -7 /c "cmd /c del @path"

echo Backup completed: %backup_file%
  1. 测试脚本
    在命令行中直接运行这个 .bat 文件,检查指定的备份目录下是否生成了 .sql 文件。
  2. 设置任务计划程序
  3. 在服务器上按下 Win + R 键,输入 taskschd.msc 并回车,打开"任务计划程序"。
  4. 在右侧操作栏中,点击"创建基本任务..."。
  5. 名称:输入一个便于识别的名称,如 "Daily MySQL Backup"。
  6. 触发器:选择"每天",并设置一个业务低峰期的时间,例如凌晨 2:00。
  7. 操作:选择"启动程序",在"程序或脚本"框中,点击浏览选择你刚刚创建的 backup_mysql.bat 文件。
  8. 点击"完成"即可。
    高级设置:创建完成后,你可以在任务列表中找到它,右键点击"属性"进行更精细的配置,例如:
    ● 勾选"不管用户是否登录都要运行"。
    ● 勾选"使用最高权限运行"
相关推荐
小白男神2 天前
MySQL进阶学习四(存储过程、游标、触发器)
mysql
这个DBA有点耶2 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G2 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备2 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远2 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
kybs19912 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
2601_962218612 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
程序猿_极客2 天前
【免费】分享一套优质的基于SSM的校园失物招领系统的设计与实现,源码+文档+视频详解(讲解)
java·mysql·ssm·课程设计·失物招领系统
张洛闻Eren2 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
于平安2 天前
MySQL-触发器
数据库·mysql