需要新建bat文件:
rem date:20220307 rem ****** MySQL backup start ******** @echo off forfiles /p "D:\java\backSql" /m backup_*.sql -d -60 /c "cmd /c del /f @path" set "Ymd=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%" "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump" --user=USER_NAME --password=PASSWORD --host=localhost --port=3306 --default-character-set=utf8mb4 DBName > "D:\java\backSql\backup_%Ymd%.sql" @echo on rem ****** MySQL backup end ********
脚本解释:
这是一个Windows批处理脚本(bat文件),用于自动备份MySQL数据库。下面是对这个脚本的逐行解释:
-
rem date:20220307
rem
是批处理中的注释前缀,表示这是一条注释,标注了日期为2022年3月7日。 -
rem ****** MySQL backup start ********
另一条注释,表示MySQL备份开始的地方。 -
@echo off
关闭命令的回显,使得批处理运行时不会显示每一条命令。 -
forfiles /p "D:\java\backSql" /m backup_*.sql -d -60 /c "cmd /c del /f @path"
使用forfiles
命令查找目录D:\java\backSql
下所有以backup_
开头并且扩展名为.sql
的文件,并删除60天之前的文件。这是为了清理旧的备份文件。 -
set "Ymd=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%"
设置一个变量Ymd
,其值是当前日期和时间。格式为:年月日时分。 -
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump" --user=USER_NAME --password=PASSWORD --host=localhost --port=3306 --default-character-set=utf8mb4 DBName > "D:\java\backSql\backup_%Ymd%.sql"
这行是脚本的核心部分,使用mysqldump
工具备份MySQL数据库。其中:--user=USER_NAME
和--password=PASSWORD
是连接MySQL的用户名和密码,需要替换为实际的值。--host=localhost
表示MySQL服务器地址。--port=3306
是MySQL服务器的端口。--default-character-set=utf8mb4
是字符集设置。DBName
需要替换为实际要备份的数据库名称。- 备份文件会保存到
D:\java\backSql\
目录下,文件名为backup_[当前日期时间].sql
。
-
@echo on
打开命令的回显。 -
rem ****** MySQL backup end ********
注释,表示MySQL备份结束的地方。
这个脚本整体很简单,主要用于定期备份MySQL数据库,并删除60天之前的备份文件。需要注意的是,脚本中的用户名、密码和数据库名称需要替换为实际的值才能正常运行。
编写完脚本之后,就可以使用windows的自动化任务执行脚本即可。windows自动化任务很简单,百度怎么使用即可。