MySQL backup.bat

html 复制代码
@echo off
chcp 65001 >nul 2>&1
setlocal enabledelayedexpansion

:::::::::::::::::::::::::::::::: CONFIGURATION ::::::::::::::::::::::::::::::::
:: MySQL Connection Settings
set "MYSQL_BIN_PATH=D:\mysql-8.0.30-winx64\bin"
set "MYSQL_USER=root"
set "MYSQL_PASS=123456"
set "MYSQL_HOST=127.0.0.1"
set "MYSQL_PORT=3306"
set "BACKUP_DB=v2"  :: 数据库名(会自动拼到文件名)

:: Backup File Settings
set "BACKUP_SAVE_PATH=C:\Users\Administrator\Desktop"  :: 备份保存目录
set "BACKUP_FILE_PREFIX=full_back"                     :: 文件名前缀
:::::::::::::::::::::::::::::::: CONFIG END ::::::::::::::::::::::::::::::::

:: 1. 生成规范日期时间(格式:年月日_时分秒,无中文/空格)
:: 处理日期:20251203(年4位+月2位+日2位)
set "DATE_YMD=%date:~0,4%%date:~5,2%%date:~8,2%"
:: 处理时间:232801(时2位+分2位+秒2位),替换空格为0(解决0-9点的空格问题)
set "TIME_HMS=%time:~0,2%%time:~3,2%%time:~6,2%"
set "TIME_HMS=!TIME_HMS: =0!"

:: 2. 拼接最终文件名:full_back_数据库名_年月日_时分秒.sql
set "BACKUP_FULL_PATH=!BACKUP_SAVE_PATH!\!BACKUP_FILE_PREFIX!_!BACKUP_DB!_!DATE_YMD!_!TIME_HMS!.sql"

:: 3. 检查 mysqldump 是否存在
if not exist "!MYSQL_BIN_PATH!\mysqldump.exe" (
    echo Error: mysqldump.exe not found! Check MYSQL_BIN_PATH.
    pause
    exit /b 1
)

:: 4. 执行备份(显示正确的文件名)
echo Backing up database [�CKUP_DB%] to: !BACKUP_FULL_PATH!
echo Please wait...

"!MYSQL_BIN_PATH!\mysqldump.exe" -u!MYSQL_USER! -p!MYSQL_PASS! -h!MYSQL_HOST! -P!MYSQL_PORT! ^
  --databases !BACKUP_DB! ^
  --single-transaction ^
  --routines ^
  --events ^
  --triggers > "!BACKUP_FULL_PATH!" 2>error.log

:: 5. 检查备份结果
if %errorlevel% equ 0 (
    echo.
    echo Success! Backup file: !BACKUP_FULL_PATH!
) else (
    echo.
    echo Error: Backup failed!
    echo Check error log: %cd%\error.log
)

endlocal
pause
相关推荐
imDwAaY1 小时前
一条 SQL 发出去之后,MySQL 到底做了什么?
sql·mysql
March.s2 小时前
MySQL 数据库原理与实战:从数据管理到 LAMP 建站全解
数据库·mysql
悟道子HD3 小时前
网络安全基本功——MySQL基础
android·mysql·web安全
晚风叙码3 小时前
MySQL 增删改查(CRUD)完全指南:从入门到面试
数据库·mysql·面试
程序员Sunday16 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
Yyyyyy~16 小时前
[ Mysql ] 库的操作
mysql
小米里的大麦16 小时前
16 MySQL 事务
数据库·mysql
Titan202417 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
for_ever_love__18 小时前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
for_ever_love__19 小时前
MySQL 高频面试题 30 问:索引、事务、锁、日志、主从与分库分表(MySQL 8.0 版)
java·数据库·spring boot·mysql·spring cloud·面试·总结