Windows环境MySQL自动备份脚本

发表于:2023-5-12 09:28

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:雪竹频道    来源:今日头条

  背景
  前段时间发布了一篇linux环境的mysql备份脚本,因为linux作为数据库服务器是目前市场的主流。现应网友粉丝要求,分享一下windows环境mysql的备份脚本。
  备份需求
  ·每个库单独一个文件
  · 压缩备份文件
  · 晚上23点定时备份
  解决方案
  创建一个MySQL备份脚本mysql_backup.bat,并在Windows任务计划程序中设置自动执行。
  1、创建一个新的文本文件,保存为mysql_backup.bat。
  2、编辑mysql_backup.bat,将以下内容复制到文件中。
  @echo off
  setlocal enabledelayedexpansion
  :: 设置MySQL可执行文件、登录信息和备份目录
  set MYSQL_BIN_PATH="C:\Program Files\MySQL\MySQL Server 8.0\bin"
  set MYSQL_USER=root
  set MYSQL_PASSWORD=your_password
  set BACKUP_DIR="C:\mysql_backups"
  :: 设置日期格式为 yyyy-MM-dd
  for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set date=%%c-%%a-%%b)
  set TIMESTAMP=%date%
  :: 创建备份目录
  if not exist %BACKUP_DIR% (mkdir %BACKUP_DIR%)
  :: 获取所有数据库列表
  "%MYSQL_BIN_PATH%\mysql.exe" --user=%MYSQL_USER% --password=%MYSQL_PASSWORD% --execute="SHOW DATABASES;" --skip-column-names > %BACKUP_DIR%\databases.txt
  :: 备份每个数据库并压缩
  for /F "tokens=*" %%A in (%BACKUP_DIR%\databases.txt) do (
    if not "%%A"=="information_schema" (
      if not "%%A"=="performance_schema" (
        if not "%%A"=="mysql" (
          if not "%%A"=="sys" (
            echo Backing up %%A...
            "%MYSQL_BIN_PATH%\mysqldump.exe" --user=%MYSQL_USER% --password=%MYSQL_PASSWORD% --databases %%A --result-file=%BACKUP_DIR%\%%A_%TIMESTAMP%.sql
            "%MYSQL_BIN_PATH%\gzip.exe" %BACKUP_DIR%\%%A_%TIMESTAMP%.sql
          )
        )
      )
    )
  )
  :: 删除数据库列表文件
  del %BACKUP_DIR%\databases.txt
  echo Backup completed.
  注意:根据实际情况修改MYSQL_BIN_PATH、MYSQL_USER、MYSQL_PASSWORD和BACKUP_DIR变量。
  3、创建一个新的任务计划程序。
  打开“控制面板”并选择“任务计划程序”。
  在右侧操作栏中点击“创建基本任务”。
  输入任务名称和描述,然后点击“下一步”。
  选择“每天”,点击“下一步”。
  设置开始时间为晚上23点,点击“下一步”。
  选择“启动程序”,点击“下一步”。
  点击“浏览”,选择mysql_backup.bat文件,然后点击“下一步”。
  点击“完成”以创建任务。
  现在,每天晚上23点,任务计划程序将自动执行mysql_backup.bat脚本,备份所有MySQL数据库并将每个数据库备份单独压缩为一个文件。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号