Windows下的MySQL自动化备份

发布时间 2023-11-09 09:43:45作者: zhaoLei_Free

需要新建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数据库。下面是对这个脚本的逐行解释:

  1. rem date:20220307
    rem 是批处理中的注释前缀,表示这是一条注释,标注了日期为2022年3月7日。

  2. rem ****** MySQL backup start ********
    另一条注释,表示MySQL备份开始的地方。

  3. @echo off
    关闭命令的回显,使得批处理运行时不会显示每一条命令。

  4. forfiles /p "D:\java\backSql" /m backup_*.sql -d -60 /c "cmd /c del /f @path"
    使用forfiles命令查找目录D:\java\backSql下所有以backup_开头并且扩展名为.sql的文件,并删除60天之前的文件。这是为了清理旧的备份文件。

  5. set "Ymd=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%"
    设置一个变量Ymd,其值是当前日期和时间。格式为:年月日时分。

  6. "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
  7. @echo on
    打开命令的回显。

  8. rem ****** MySQL backup end ********
    注释,表示MySQL备份结束的地方。

这个脚本整体很简单,主要用于定期备份MySQL数据库,并删除60天之前的备份文件。需要注意的是,脚本中的用户名、密码和数据库名称需要替换为实际的值才能正常运行。

编写完脚本之后,就可以使用windows的自动化任务执行脚本即可。windows自动化任务很简单,百度怎么使用即可。