Windows 下 MySQL/MariaDB 免费自动备份方案全指南

 

引言

在生产环境或个人项目中,数据库是核心资产。定期备份不仅可以防止数据丢失,还能在发生故障时快速恢复业务。在 Windows Server 环境下运行的 MySQL 或 MariaDB,由于缺少 Linux 上的热备工具,需要选择合适的免费备份方案。本文从基础到进阶,系统梳理可用工具、脚本方案和自动化方法。


一、免费备份软件推荐

你最初询问 Windows 上免费的 MySQL 自动备份软件,经过分析,我们总结如下:

  1. mysqldump + 脚本

    • 工具:MySQL 自带 mysqldump.exe

    • 优点:完全免费、易配置

    • 缺点:大数据库导出慢,可能锁表

    • 适用场景:小型或中型数据库

  2. MySQLBackupFTP(免费版)

    • 特点:图形化操作,支持定时任务、压缩和上传云端

    • 免费版限制:仅支持单数据库

    • 官网https://mysqlbackupftp.com

    • 适用场景:中小型项目,喜欢图形化管理

  3. MariaBackup(mariabackup)

    • 特点:开源免费,支持热备份和增量备份

    • 限制:配置稍复杂

    • 适用场景:大型数据库,企业级环境

  4. HeidiSQL 伪自动备份

    • 特点:结合 GUI 使用方便,可借助 mysqldump 脚本实现自动化

    • 限制:需手写脚本

    • 适用场景:开发者或轻量备份需求

  5. Windows VSS 快照

    • 特点:快速备份整个数据库目录

    • 限制:可能需要停库或依赖 InnoDB 崩溃恢复

    • 适用场景:需要物理目录备份的场景


二、mysqldump + 批处理脚本

这是最通用的免费方案。通过 mysqldump 导出 SQL 文件,再结合 Windows 批处理脚本和任务计划实现自动化。

示例脚本

@echo off
set MYSQL_USER=root
set MYSQL_PASSWORD=你的密码
set MYSQL_DATABASE=你的数据库名
set BACKUP_DIR=D:\mysql_backups

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_DIR%\%MYSQL_DATABASE%_%DATETIME%.sql

if not exist %BACKUP_DIR% mkdir %BACKUP_DIR%

mysqldump -u%MYSQL_USER% -p%MYSQL_PASSWORD% %MYSQL_DATABASE% > "%BACKUP_FILE%"

:: 压缩 SQL 文件
powershell -command "Compress-Archive -Path '%BACKUP_FILE%' -DestinationPath '%BACKUP_FILE%.zip'"
del "%BACKUP_FILE%"

:: 删除 7 天前的备份
forfiles /p %BACKUP_DIR% /m *.zip /d -7 /c "cmd /c del @path"
  • 配合 Windows 任务计划程序即可每天自动备份数据库。

  • 优点:简单易用,免费。

  • 缺点:大数据库导出慢,可能锁表。


三、Percona XtraBackup 在 Windows 的限制

你提到 Percona XtraBackup 是否免费

  • XtraBackup 是开源免费的,遵循 GPL v2 协议

  • 官方免费版支持全功能备份

  • 缺点:仅支持 Linux,不支持 Windows

因此在 Windows 上,需要找替代方案或通过 WSL2 等方式间接使用。


四、MariaBackup(mariabackup)方案

MariaBackup 是 MariaDB 官方工具,支持 Windows,可作为 XtraBackup 替代品。特点:

  • 热备份(无需停机)

  • 支持全量和增量备份

  • 适合大型数据库

Windows 全量备份脚本

@echo off
set MARIABACKUP="C:\Program Files\MariaDB 10.11\bin\mariabackup.exe"
set USER=root
set PASSWORD=你的密码
set BACKUP_DIR=D:\mariadb_backups
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 TARGET=%BACKUP_DIR%\backup_%DATETIME%

if not exist %BACKUP_DIR% mkdir %BACKUP_DIR%
mkdir %TARGET%

%MARIABACKUP% --backup --user=%USER% --password=%PASSWORD% --target-dir=%TARGET%

:: 清理 7 天前备份
forfiles /p %BACKUP_DIR% /s /m * /d -7 /c "cmd /c rmdir /s /q @path"

增量备份

mariabackup --backup --target-dir=D:\mariadb_backups\inc1 --incremental-basedir=D:\mariadb_backups\full --user=root --password=你的密码
  • 可结合 Windows 任务计划程序实现定时自动备份。


五、HeidiSQL 的伪自动备份

HeidiSQL 没有自带自动化,但可通过脚本调用 mysqldump 实现“伪自动化”。

脚本示例

@echo off
set MYSQL_USER=root
set MYSQL_PASSWORD=你的密码
set MYSQL_DATABASE=你的数据库名
set BACKUP_DIR=D:\heidi_backups
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_DIR%\%MYSQL_DATABASE%_%DATETIME%.sql

"C:\Program Files\MariaDB 10.11\bin\mysqldump.exe" -u%MYSQL_USER% -p%MYSQL_PASSWORD% %MYSQL_DATABASE% > "%BACKUP_FILE%"
  • 配合 Windows 任务计划程序,可每天定时导出数据库。


六、总结与推荐

场景 推荐方案
小型数据库 mysqldump + 批处理脚本
中小型数据库,图形化管理 MySQLBackupFTP
大型数据库或企业级环境 MariaBackup(热备、增量备份)
开发者轻量使用 HeidiSQL 伪自动备份
  • Windows Server 2022 环境下,mysqldump + 批处理 + 任务计划 是最简单可行方案

  • 对大数据库,建议使用 MariaBackup 或在 Linux 下使用 XtraBackup


✅ 本文完整梳理了从免费工具推荐批处理脚本、MariaBackup 自动化及 HeidiSQL 伪自动化的全过程,适合 Windows 用户快速部署 MySQL/MariaDB 自动备份方案。

No comments

公司简介

 

自1996年以来,公司一直专注于域名注册、虚拟主机、服务器托管、网站建设、电子商务等互联网服务,不断践行"提供企业级解决方案,奉献个性化服务支持"的理念。作为戴尔"授权解决方案提供商",同时提供与公司服务相关联的硬件产品解决方案。
备案号: 豫ICP备05004936号-1

联系方式

地址:河南省郑州市经五路2号

电话:0371-63520088

QQ:76257322

网站:800188.com

电邮:该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。