自动备份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. 点击"完成"即可。
    高级设置:创建完成后,你可以在任务列表中找到它,右键点击"属性"进行更精细的配置,例如:
    ● 勾选"不管用户是否登录都要运行"。
    ● 勾选"使用最高权限运行"
相关推荐
达梦数据9 小时前
达梦数据复制软件DMDRS搭建部署示例:源数据库DM8到目标数据库Kingbase V8一对一数据同步
数据库·oracle
我命由我123459 小时前
LRU 缓存淘汰策略
数据结构·redis·学习·mysql·算法·缓存·学习方法
ly76899 小时前
MongoDB 读写策略与一致性取舍:readConcern、readPreference 与 causal session
数据库·mongodb·writeconcern·readconcern·readpreference·因果一致性
天空属于哈夫克39 小时前
企业微信消息回调处理:如何避免慢查询拖垮整个服务?
数据库·php·企业微信
烟雨归来9 小时前
Oracle备份NFS IO挂死引发PQ并行进程耗尽process
数据库·oracle
acd120099 小时前
PHP 8.1 下 Swoole 协程 PDO 偶尔出现 MySQL 连接丢失问题排查
数据库·oracle
cc5725026539 小时前
2027校招:大数据管理与应用转财务数字化,会计业务、SQL与BI学习路线
数据库·sql·学习
梦想不只是梦与想10 小时前
SQLAlchemy:异步、连接池 (四)
数据库·fastapi·sqlalchemy
j7~10 小时前
【仿 RabbitMQ 项目】发布订阅消息队列 (篇八):交换机数据管理模块,分层类设计、SQLite 回调原理与代码实现
服务器·网络·数据库·消息队列·交换机·交换机数据管理·sqlite回调原理
PHP实战开发录10 小时前
PHP上传文件为什么会被覆盖
数据库·mysql·php