自动备份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. 点击"完成"即可。
    高级设置:创建完成后,你可以在任务列表中找到它,右键点击"属性"进行更精细的配置,例如:
    ● 勾选"不管用户是否登录都要运行"。
    ● 勾选"使用最高权限运行"
相关推荐
2401_891409262 小时前
量化数据13:港股分钟K线、Level2逐笔Tick、十档盘口和港股通历史数据的批量提取
数据库
w-w0w-w8 小时前
SQL注入
网络·数据库·sql
tianyuanwo8 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
一条泥憨鱼8 小时前
【计算机网络】短连接、长连接与连接池:从 TCP 握手到池化复用的完整链路
网络·数据库·网络协议·tcp/ip·计算机网络
IvorySQL8 小时前
深入 PostgreSQL WAL:从崩溃恢复到逻辑复制
数据库·postgresql
幽灵诶10 小时前
Mysql(基于测试的学习)
数据库·mysql
砚底藏山河10 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
宇宙无敌暴龙战士66610 小时前
MySQL 8 库表操作学习笔记:SQL 基础、库表管理、约束与用户授权全流程
数据库·sql·mysql·学习笔记·后端开发
猿究院_夏燊10 小时前
MySQL 的四种隔离级别
java·数据库·mysql
say_fall11 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++