Windows下MySQL定时备份脚本(无坑版)

476 阅读2分钟

Windows下的神器之一就是【任务计划程序】,可以定时执行一些任务,我们可以通过【任务计划程序】执行批处理文件实现每天定时备份MySQL数据库。

1.MySQL自带的mysqldump

最方便当属mysqldump了,比我们常用的Navicat备份更快、文件体积更小。该方法无需停止数据库,并可以加上执行日期作为sql文件名保存。

总体步骤:

写好批处理文件->创建基本任务->设置触发方式->选中写好的批处理文件(.bat)

具体操作步骤:

①打开记事本,复制以下代码,然后保存为.bat文件

rem *******************************ProcessStart***************************** @echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump" --opt -u root --password=your_password your_database > D:/sqlbackup/filename_%Ymd%.sql
@echo on
rem *******************************Process End*****************************


代码解释:
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump" 为你的MySQL安装目录bin文件夹下的mysqldump.exe的路径
D:/sqlbackup/filename_%Ymd%.sql 是保存备份sql文件的路径以及保存的文件名 root为数据库你的用户名
your_password是你的数据库密码
your_database是你要备份的数据库名称
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" 查询当前日期存为变量
@echo off/echo on关闭代码回显,避免数据库密码信息直接暴露在命令行中

避坑环节:

  • 执行那段mysqldump的命令,如果你的路径含有空格,需要加上双引号,否则CMD命令行判断空格是前后识别不同级别的文件夹,导致报错或运行无效。

  • 可以在写好批处理文件后,双击bat文件试运行一下,如果没问题再创建任务计划。

②开始菜单搜索【任务计划程序】or Win+R(运行) 输入【taskschd.msc】

image.png

③正常填写和选择触发方式、我们的写好的批处理程序点击下一步即可

image.png

④大功告成~可以在这里查看我们设置的任务详情

image.png

如何本地备份远程数据库?

在现有bat命令行中的mysqldump行中加入--host=127.0.0.1 --protocol=tcp --port=3306,远程数据库地址以及端口,可参考例子
mysqldump --opt --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306