Skip to content
网游世界
网游世界

吾生有涯,而知无涯。

  • 首页
  • PHP
    • ThinkPHP
    • FastAdmin
    • webman
  • JavaScript
    • jQuery
    • AdminLTE
  • Free Pascal
  • Java
    • JeeSite
    • 若依
    • ruoyi-vue-pro
  • 其它
    • 操作系统
    • 树莓派
    • 前端
    • Null
  • 关于
网游世界

吾生有涯,而知无涯。

Windows MySQL 备份和 winscp 同步

3Vshej, 2025年8月7日 周四2025年8月8日 周五

现有一台 Win7 系统,数据库需要做个备份、同步功能。

下面是备份脚本,对路径进行配置:

(–all-databases 为备份所有数据库,如果只是部分,则使用 –-databases db1 db2)

@echo off
:: MySQL备份批处理脚本 - 只保留最近5份备份
:: 设置变量
set MYSQL_BIN="D:\mysql5.6.17\bin\mysqldump.exe"
set MYSQL_USER=root
set MYSQL_PASSWORD=
set MYSQL_PORT=3306
set BACKUP_DIR=D:\mysqlBackup\56
set ZIP_TOOL="C:\Program Files\Huorong\AppStore\bin\7z.exe"
set BACKUP_COUNT=5

:: 创建备份目录(如果不存在)
if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%"

:: 获取当前日期时间作为文件名
for /f "tokens=1-4 delims=/ " %%a in ('date /t') do (
    set DATE_STR=%%a-%%b-%%c
)
for /f "tokens=1-3 delims=: " %%a in ('time /t') do (
    set TIME_STR=%%a-%%b
)
set DATETIME_STR=%DATE_STR%-%TIME_STR%
set BACKUP_FILE=%BACKUP_DIR%\MySQL_Backup_%DATETIME_STR%.sql
set ZIP_FILE=%BACKUP_DIR%\MySQL_Backup_%DATETIME_STR%.zip

:: 备份所有数据库
echo 正在备份所有MySQL数据库(端口:%MYSQL_PORT%)...
%MYSQL_BIN% --user=%MYSQL_USER% --password=%MYSQL_PASSWORD% --host=%MYSQL_HOST% --port=%MYSQL_PORT% --all-databases --routines --events --single-transaction> "%BACKUP_FILE%"

:: 检查备份是否成功
if errorlevel 1 (
    echo 备份失败!
    pause
    exit /b 1
)

echo 备份成功,文件保存在: %BACKUP_FILE%

:: 压缩备份文件
echo 正在压缩备份文件...
%ZIP_TOOL% a -tzip "%ZIP_FILE%" "%BACKUP_FILE%"

:: 删除原始SQL文件
del "%BACKUP_FILE%"

:: 删除旧的备份文件,只保留最近的%BACKUP_COUNT%份
echo 清理旧备份文件,只保留最近的%BACKUP_COUNT%份...
for /f "skip=%BACKUP_COUNT% eol=: delims=" %%F in ('dir "%BACKUP_DIR%\MySQL_Backup_*.zip" /a-d /o-d /b 2^>nul') do (
    echo 删除旧备份文件: %%F
    del "%BACKUP_DIR%\%%F"
)

echo 备份和压缩完成!最终备份文件: %ZIP_FILE%
echo 当前保留的备份文件:
dir "%BACKUP_DIR%\MySQL_Backup_*.zip" /a-d /o-d /b
exit

使用 winscp 同步:

@echo off
set WINSCP_PATH="C:\Windows\XFTP\winscp\winscp"
%WINSCP_PATH% /command ^
    "open sftp://root:123456@192.168.1.9/" ^
    "cd /www/dataBackup/254_MySQL" ^
    "lcd D:\mysqlBackup\" ^
    "synchronize remote -delete -filemask=|.git/ ." ^
    "exit"

之后,通过 Windows 的计划任务来定时执行这2个脚本。

相关文章:

  1. Windows BT 面板伪静态设置不生效 原来是在 Linux 下使用的,近期在 Windows 中安装了 BT 面板,随之的问题也来了。...
  2. Windows BT 面板 404 页乱码 仍是使用 Windows BT 面板遇到的问题:在新建站点后,访问不存在页面时,正常应该返回 404......
  3. TortoiseGit 导出修改的文件 TortoiseSVN 中要导出修改的很简单,右击查看日志,选择修改的版本,导出即可。在 Torto......
  4. 处理 git@gitlab.com: Permission denied (publickey) 问题 原因是,未将公钥添加到 GitLab。 git clone git@gitlab.com:freep......
其它 操作系统 同步数据库

文章导航

Previous post

近期文章

  • Windows MySQL 备份和 winscp 同步
  • WinRAR 压缩方式
  • C 盘 gradle android 目录空间占用太大
  • ICP 备案短信核验失败
  • 腾讯 AI IDE CodeBuddy 下载及获取邀请码

归档

  • 2025 年 8 月
  • 2025 年 7 月
  • 2025 年 6 月
  • 2025 年 5 月
  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
除非特殊说明,本站作品采用知识共享署名 4.0 国际许可协议进行许可。
豫公网安备 41010402002622号 豫ICP备2020029609号-3
©2025 3Vshej