windows系统下,每天定时做mysql数据库备份
一.备份数据库命令
格式化当前日期
set TIMESTAMP=%date:~0,4%%date:~5,2%%date:~8,2%
将现在的日期格式化为yyyyMMdd
备份mysql指定数据库
mysqldump -uroot -p123456 dbname > "E:\DBbackups\mydb_%TIMESTAMP%.sql"
-uroot:root是用户名
-p123456:123456是数据库密码
dbname:数据库名称
路径是备份文件存储的路径,需准备一个空的文件夹路径,文件名使用了上一句命令生成的时间,避免文件名重复
可以在cmd中对备份命令进行测试,如果mysqldump提示“不是内部或外部命令“,则需要设置环境变量,在文章底部有方法。
ps:mysqldump还提供了多种命令,备份多个数据库、所有数据库等等,可以在网上自己搜索
清理备份文件
forfiles /p "E:\DBbackups" /m * /d -90 /c "cmd /c del @path"
/p "E:\DBbackups":备份文件存储的路径,这个路径的文件夹中如果有其它文件夹,可能会导致删除失败
90:最后修改日期超过90天
/c "cmd /c del @path:删除文件
备份命令测试好后,将命令放到记事本
修改记事本后缀为.bat,bat文件是批处理文件,可以双击直接运行
这是我自己测试后,备份成功的sql文件
二.定时执行备份命令
打开windows系统的“任务计划程序”,右侧创建基本任务,输入名称
选择每天
设置备份时间
选择启动程序,确认下一步,程序或脚本选择自己创建的.bat文件,最后点击完成
创建成功
三.还原备份数据库
1.连接mysql,root是数据库账号,cmd执行以下命令后,输入数据库密码(如果有Navicat或其它数据库管理工具,可以在工具中创建数据库,然后直接跳到第3步,执行还原命令)
mysql -u root -p
2.创建数据库,dbname为数据库名称,末尾要加上分号,创建完毕后,使用exit退出mysql命令行
CREATE DATABASE dbname;
3.在-u和-p后面分别输入数据库账号密码,dbname是数据库名,最后是备份文件路径,执行命令即可还原。
mysql -uroot -p123456 dbname < "E:\DBbackups\mydb_20240607.sql"
如果mysql命令无效,看下边
四.可能遇到的问题
执行备份命令时,提示“mysqldump不是内部或外部命令”
执行还原命令时,提示“mysql不是内部或外部命令”
直接cmd转到C盘mysql的bin文件夹路径里执行命令,一般在这个路径C:\Program Files\MySQL\MySQL Server 8.0\bin
或者按照以下方式设置环境变量
打开高级系统设置,可右击此电脑——>属性——>高级系统设置
点击环境变量
编辑系统变量中的Path
选择新建,将mysql的bin文件夹地址填入,点击确定。
默认路径是C:\Program Files\MySQL\MySQL Server 8.0\bin
(如果编辑时,Path中的路径都在一个文本框,将文件夹路径放到末尾,用英文分号隔开即可)
确定后,需要关闭cmd重新打开,mysqldump命令才会生效。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现