Windows 下 MySQL 数据库的备份

时间 2020/3/29 11:41:29 加载中...

背景

我们做的项目使用的是 MySQL 数据库,用户要求数据库要定时备份,防止数据丢失。
MySQL 部署的服务器操作系统是 Windows Server

思路

使用 MySQL 自带的数据库备份功能,将备份生成的文件保存在服务器上。可以人为去备份,然后拷贝回我们自己的电脑,这样实现了备份。

但更好的办法是:定时备份,不人为干预。因此,我们可以使用 Windows 自带的计划任务。

这样,自动定时备份就实现了。

但备份的数据库还是放在了同一个服务器上面,假如服务器坏了,那备份也是白备份了。
所以备份的文件还是拷贝到别的服务器比较好,并且能自动更好。

我们使用的是 FTP + FreeFileSync(一个软件) + Windows计划任务 来实现这个功能的。

FTP的目的是分享服务器上的文件,也就是分享我们的数据库备份文件。
而 FreeFileSync 则是通过 FTP 去获取我们的备份文件。
然后再通过 Windows计划任务 去控制 FreeFileSync 定时获取文件就可以了。

涉及技术

  • MySQL 备份命令:mysqldump
  • bat 批处理脚本
  • windows 计划任务
  • ftp搭建
  • FreeFileSync 使用

MySQL 备份命令

MySQL 备份命令使用的是 MySQL 安装目录下的 mysqldump.exe 文件
例如: C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe

开启命令行,切换到 mysqldump.exe 所在目录,运行命令 mysqldump,效果如下:

mysqldump 的简单使用

备份本地 MySQL 名为 electricalsimulation 的数据库

  1. mysqldump --user=root --password=123456 --databases electricalsimulation
  2. --user: 用户名
  3. --password: 密码
  4. --databases: 要备份的数据库

但是,上面的命令会打印出要备份的 SQL 语句来,如何保存到本地的文件呢?

那么则用到 bat 批处理脚本重定向 ,修改上面的命令

  1. mysqldump --user=root --password=123456 --databases electricalsimulation > d:\2.sql

符号 > 则是将输出的内容保存到了 d:\2.sql 文件中

指定 MySQL 服务器地址

我们可以通过 host 参数来指定 MySQL 服务器的地址

  1. mysqldump --host=127.0.0.1 --user=root --password=123456 --databases electricalsimulation > d:\2.sql

bat 批处理脚本

我们知道了如何通过命令来备份,现在可以写一个 bat 脚本来执行备份命令了。

新建 backup.bat 文件,内容如下:(注意需要修改部分地方)

  1. :: 设置备份路径
  2. set "backup_path=D:\Mysql_Backup"
  3. set "mysqlPath=C:/Program Files/MySQL/MySQL Server 5.7/bin"
  4. set "host=127.0.0.1"
  5. set "port=3306"
  6. set "user=root"
  7. set "password=123456"
  8. set "databases=electricalsimulation"
  9. ::删除前30天前备份的文件
  10. forfiles /p %backup_path% /m backup_*.sql -d -30 /c "cmd /c del /f @path"
  11. set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"
  12. "%mysqlPath%/mysqldump.exe" --single-transaction=TRUE --user=%user% --password=%password% --host=%host% --port=%port% --databases "%databases%" > %backup_path%\backup_%Ymd%.sql

bat 脚本写好之后,可以双击执行 bat 脚本,看在备份路径下是否正确生成了数据库备份。

windows 计划任务

在 “管理工具” 中找到 “任务计划程序” ,然后将上面的 bat 脚本添加到定时任务中。
具体步骤如下:




ftp 的搭建

ftp 的搭建请参照博文:xxxxxxx

FreeFileSync 使用

扫码分享
版权说明
作者:SQBER
文章来源:http://www.sqber.com/articles/mysql-backup-windows.html
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。