如何在 Windows Server 中自动备份 MySQL数据库?

 

有没有办法在一天中的特定时间为指定服务器自动备份MySQL数据库或发送带附件的电子邮件。您认为实现这一目标的最好和最安全的方法是什么?

- 来自 stockoverflow.com 的问题

对于需要经常备份数据库的人来说,每次都手动进行设置并不是一个好主意。那么,有没有办法在Windows服务器或客户端计算机中创建MySQL在特定时间自动备份呢?继续阅读以学习5种有效的方法。

方式一、使用AutoMySQLBackup创建MySQL备份策略

要创建 MySQL备份策略,AutoMySQLBackup 可以帮助您为 MySQL数据库创建每日、每周、每月的备份。它为您提供电子邮件通知、压缩和加密、备份循环和增量数据库备份。

1.请下载自动MySQL备份.

2.安装Automysqlbackup并使用以下操作创建自动MySQL备份:

  • 运行安装.sh 脚本。

  • 编辑 /etc/automysqlbackup/myserver.conf 以自定义适合您的设置(如 MySQL 用户、密码、备份位置)。

  • 使用以下行创建一个名为 runmysqlbackup 的脚本:

                #!/bin/sh 
                /usr/local/bin/automysqlbackup /etc/automysqlbackup/myserver.conf
                chown root.root /var/backup/db* -R
                search /var/backup/db* -type f -exec chmod 400 {} \;
                find /var/backup/db* -type d -exec chmod 700 {} \;
  • 将脚本复制到 /etc/cron.daily 文件夹,并使其可执行。

3. MySQL备份策略将通过以下命令从命令行运行:

automysqlbackup /etc/automysqlbackup/myserver.conf

 

方式2. MySQL备份策略的脚本

1. 创建一个 MySQL备份策略脚本,如下所示:

 #!/bin/bash
#
BKP_USER="myuser"     # Enter the username for backup
BKP_PASS="mypassword"        # Enter the password of the backup user
#
BKP_DEST="/backup" # Enter the Backup directory,change this if you have someother location
#
BKP_DAYS="2" # Enter how many days backup you want,
#
MYSQL_HOST="localhost"  
#
#
BKP_DATE="$(date +"%d-%m-%Y-%H:%M:%S-%a")";
#
IGNORE_DB="information_schema mysql performance_schema"
#
[ ! -d $BKP_DEST ] && mkdir -p $BKP_DEST || :
#
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"
#
#
DB_LIST="$($MYSQL -u $BKP_USER -h $MYSQL_HOST -p$BKP_PASS -Bse 'show databases')"
#
for db in $DB_LIST
do
    skipdb=-1
    if [ "$IGNORE_DB" != "" ];
    then
for i in $IGNORE_DB
do
   [ "$db" == "$i" ] && skipdb=1 || :
done
    fi
 
    if [ "$skipdb" == "-1" ] ; then
BKP_FILENAME="$BKP_DEST/$db.$BKP_DATE.gz"
#
#
        $MYSQLDUMP -u $BKP_USER -h $MYSQL_HOST -p$BKP_PASS $db | $GZIP -9 > $BKP_FILENAME
    fi
done
#
find $BKP_DEST -type f -mtime +$BKP_DAYS -delete
#
                

“注意:”根据需要更改BKP_USER、BKP_PASS、BKP_DEST、BKP_DAYS的值。

2. 将脚本命名为mysqlbackup-script.ps1

3、然后点击“开始”,搜索powershell“以管理员身份运行”

4. 运行命令:Set-ExecutionPolicy RemoteSigned,输入A并按Enter

5.然后运行命令:

& "C:\PATH\TO\SCRIPT\first_script.ps1"(对我来说,这是:& “D:\Ailsa\mysqlbackup-script.ps1”)

运行 Mysql 备份脚本

 

方式 3. 通过任务计划程序创建自动 MySQL 备份

1.将以下内容复制到文本文件中并保存:

cd “C:\Program Files\MySQL\MySQL Server 5.6\bin”
                mysqldump -h 127.0.0.1 -u root -p --all-databases > "D:\Ailsa\allmysql.sql"

2. 重命名名为mysqlbackup.bat的文件(使其可执行)。

3.在搜索框中输入“任务计划程序,然后选择”“任务计划程序”

4. 单击“任务计划程序库”>“创建任务”...。

创建任务

5. 在常规选项卡中为 MySQL备份策略创建一个名称。

任务名称

6. 在 Triggers 选项卡中点击“新建”,在 Begin the task 部分选择On a 计划任务,然后选择Daily,然后点击“确定”

触发器添加新计划

7.在 Actions 选项卡中点击New... ,选择Start a program in Action,单击Browse...选择mysqlbackup.bat文件并点击“确定” > “确定”

选择 Mysqlbackup Bat

并且会在您设置的特定时间自动运行,创建MySQL备份策略。

方法4. 创建MySQL数据库备份策略

在这里,我们将向您展示如何在 Windows Server 2019 中使用以下命令创建 MySQL备份策略:MySQL备份软件- 傲梅企业备份标准版。它支持运行 Windows Server 2003、2008、2012、2016、2019(包括 R2)、2022、SBS 2003、2008、2011 或 Windows 11、10、8.1、8、7、Vista、XP 的无限计算机。

有了它,您可以轻松地为您的MySQL数据库文件设置一个备份计划表,选项包括每天、每周、每月等。如果您担心频繁备份会占用太多磁盘空间,您还可以执行增量或差异备份仅复制更改的文件,或选择更高的压缩级别。

1.启动傲梅企业备份标准版,选择“备份”“文件备份”

文件备份

2. 点击“+添加文件夹”“+添加文件”按钮选择MySQL数据库文件。如有必要,重命名“任务名称”。

添加文件或添加文件夹

3.选择保存MySQL备份策略文件的“目的地”。

选择 MySQL 备份的目的地

4. 点击“计划”选项通过每日、每周、每月、事件触发器或 USB 插件运行 MySQL数据库文件备份任务,在高级选项卡中选择“增量备份”

附表一般

安排进阶

5. 按开始备份 >>按钮在 Windows Server 2019 中创建自动 MySQL 备份。

启动 MySQL备份策略

“提示”

  • “选项”:可以对MySQL备份策略文件进行注释、压缩、拆分、加密、启用邮件或短信通知等。

  • “自动备份清理”:如果目的地有很多备份并且显示磁盘空间不足,您可以在备份计划>备份方案中启用自动备份清理以自动删除旧备份映像。

总结

自动备份可以省去你每次手动设置任务的麻烦,无疑是持续保护MySQL数据库文件的好方法。那么如何创建MySQL备份策略呢?本文为您提供了5种方法。如果你采取最后一种方式,你也可以使用傲梅企业备份标准版来轻松的执行MySQL数据库文件增量备份。