<返回更多

windows环境mysql自动备份脚本

2023-05-10  今日头条  雪竹频道
加入收藏

前段时间发布了一篇linux环境的MySQL备份脚本,因为linux作为数据库服务器是目前市场的主流。现应网友粉丝要求,分享一下windows环境mysql的备份脚本。

备份需求

解决方案

创建一个MySQL备份脚本mysql_backup.bat,并在Windows任务计划程序中设置自动执行。

1、创建一个新的文本文件,保存为mysql_backup.bat。

2、编辑mysql_backup.bat,将以下内容复制到文件中。

@echo off
setlocal enabledelayedexpansion

:: 设置MySQL可执行文件、登录信息和备份目录
set MYSQL_BIN_PATH="C:Program FilesMySQLMySQL Server 8.0bin"
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脚本,备份所有MySQL数据库并将每个数据库备份单独压缩为一个文件。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>