惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
L
Lohrmann on Cybersecurity
罗磊的独立博客
V
V2EX
人人都是产品经理
人人都是产品经理
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
D
Docker
云风的 BLOG
云风的 BLOG
B
Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Azure Blog
Microsoft Azure Blog
C
Check Point Blog
IT之家
IT之家
S
Secure Thoughts
S
Security @ Cisco Blogs
博客园 - 聂微东
阮一峰的网络日志
阮一峰的网络日志
G
Google Developers Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
TaoSecurity Blog
TaoSecurity Blog
博客园_首页
雷峰网
雷峰网
博客园 - 三生石上(FineUI控件)
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Heimdal Security Blog
Last Week in AI
Last Week in AI
Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
J
Java Code Geeks
PCI Perspectives
PCI Perspectives
GbyAI
GbyAI
Help Net Security
Help Net Security
W
WeLiveSecurity
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
S
Schneier on Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
F
Full Disclosure
A
About on SuperTechFans
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Recorded Future
Recorded Future
C
CXSECURITY Database RSS Feed - CXSecurity.com
NISL@THU
NISL@THU
Hacker News: Ask HN
Hacker News: Ask HN
The Cloudflare Blog
Latest news
Latest news
The Last Watchdog
The Last Watchdog
Attack and Defense Labs
Attack and Defense Labs
T
The Blog of Author Tim Ferriss

时间的朋友

Windows 命令行密码重置 Anaconda安装 typescript 注解解读1 Konvajs Shape加载自定义图片 sshpass 使用 why-is-node-running webgl笔记 SharedArrayBuffer is not defined blender 常用快捷键 vue -- v3.4commit提交记录2 vue2 升级vue3报错问题整理 着色器 expressjs 源码 hyper-V arch linux 网络配置 element input数字格式化 three 拼接货架 WebAudio笔记 Windows nginx重启bat脚本 vue -- v3.4commit提交记录 URI malformed vue3 -- Class 对象在组件中使用范例 | 时间的朋友 ruby 安装和升级 element-plus 老版本cascader使用卡死问题 vue3 内置Transition组件 前端memo的实现 Vue -- vue-class-component源码 linux 优化脚本 typescript 装饰器 microbundle 源码 WSL2问题解决WslRegisterDistribution failed with error: 0x800701bc vue -- vue3利用createVNode函数,建立命令式调用组件 SSH connection failed: connect ECONNREFUSED 请求中获取浏览器推荐语言 flutter 生命周期 双向链表 堆和栈 EventSource 单向链表 简易的事件监听EventBus fork的仓库更新分支 forwardRef 定义的组件添加静态属性 js 获取滚动元素 canvas requestAnimationFrame画一个clock mousedown event中保持input的focus状态 vue -- @vue/compiler-core整体逻辑 IOS端h5 fixed滚动问题 vue -- compile结果代码解读 vue -- transformElement源码 Vue -- 内置指令源码 vue3 -- @vue/compiler-sfc compileScript源码 浏览器工作原理 对比2个版本号的方法 vite 向entry html中注入代码 小程序 -- 内部使用webview绑定微信公众号openId github coding同步action 小程序 -- 微信外部浏览器或者链接打开方式整理 MSE -- MediaSource 的前端使用 rollup 打包vue2组件 常用工具函数整理 Benchmark.js 使用 import-html-entry js沙箱实现源码 import-html-entry 笔记 axios core源码 国内开源镜像网站 nuxt -- docker-compose进行部署 vue -- provide和inject原理 vue -- hoistStatic原理 jenkins 配置模板代码 vue -- compileTemplate原理 小程序开发问题整理 webpack-dev-server proxy代理模块 vite 代理中更改请求头问题 Async.js flutter 问题整理 比较两个数组的不同项 ms源码解析 浏览器同源策略 前端缓存笔记 webpack5 schema-utils tsc 和 babel 编译typescript区别 typescript 学习笔记 esbuild api整理 Webpack Chain 源码 deepmerge库源码解读 Vue 自定义指令的执行机制 linux 问题整理 webpack5学习笔记 elementui form多表单验证 Webpack5 -- Assest Module vue -- 实现MenuTree组件 Vue -- VFor的编译处理 vue -- 使用中问题整理 算法基础知识 浏览器环境检测函数整理 yarn 问题搜集 c++笔记 webpack 模块加载原理 webpack 模块加载原理(二) Zero Width Characters slate.js API整理
Windows MySQL备份bat脚本
2025-11-05 · via 时间的朋友

Windows MySQL备份bat脚本 🔗

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
@echo off
rem ========== 可维护参数 ==========
set SRC_HOST=127.0.0.1
set SRC_PORT=3306
set SRC_USER=root
set SRC_PWD=SrcPass
set SRC_DB=src_db

set DST_HOST=127.0.0.1
set DST_PORT=3307
set DST_USER=root
set DST_PWD=DstPass
set DST_DB=dst_db

set MYSQL_HOME=C:\Program Files\MySQL\MySQL Server 8.0
set BAK_DIR=C:\scripts\backup
set LOG_DIR=C:\scripts\logs
rem =================================

:: 1. 生成带时分秒的文件名
set NOW=%date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%%time:~6,2%
set NOW=%NOW: =0%          &:: 补零(处理 08:09:05 中的空格)
set SQL_FILE=%BAK_DIR%\%SRC_DB%_%NOW%.sql
set LOG_FILE=%LOG_DIR%\mysql_sync_%date:~0,4%%date:~5,2%%date:~8,2%.log

:: 2. 确保目录存在
if not exist "%BAK_DIR%" md "%BAK_DIR%"
if not exist "%LOG_DIR%" md "%LOG_DIR%"

echo === %date% %time% 开始同步 [%SRC_DB%] -> [%DST_DB%] === >> "%LOG_FILE%"
echo           备份文件: %SQL_FILE% >> "%LOG_FILE%"

:: 3. 导出
"%MYSQL_HOME%\bin\mysqldump" -h%SRC_HOST% -P%SRC_PORT% -u%SRC_USER% -p"%SRC_PWD%" ^
     --single-transaction --routines --triggers --events --databases %SRC_DB% ^
     > "%SQL_FILE%"
if errorlevel 1 (
   echo === %date% %time% 导出失败 === >> "%LOG_FILE%"
   exit /b 1
)

:: 4. 导入
"%MYSQL_HOME%\bin\mysql" -h%DST_HOST% -P%DST_PORT% -u%DST_USER% -p"%DST_PWD%" ^
     %DST_DB% < "%SQL_FILE%"
if errorlevel 1 (
   echo === %date% %time% 导入失败 === >> "%LOG_FILE%"
   exit /b 1
)

echo === %date% %time% 同步完成 === >> "%LOG_FILE%"

新建计划任务 🔗

Win+R → taskschd.msc → 创建任务:

  • 常规:勾选“使用最高权限运行”
  • 触发器:每天 02:00
  • 操作:启动程序 → C:\scripts\mysql_sync.bat
  • 条件:取消“仅 AC 电源”
  • 设置:允许按需运行、失败重试 3 次,间隔 10 分钟