windows环境下利用mysqldump对远程数据库实现定时备份

windows环境下利用mysqldump对远程数据库实现定时备份

介绍:mysqldump是mysql自带工具,可以在mysql安装文件夹下的bin文件夹中找到
在这里插入图片描述

一、创建脚本

新建一个.bat文件,例如我新建的文件为backup.bat。该脚本文件的内容如下:

set now=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

set backup=C:\test\backup
if not exist %backup% md %backup%

set nowfile=%backup%\%now%
if not exist %nowfile% md %nowfile%

C:\test\mysql\mysql-8.0.23\bin\mysqldump -uroot -p123456 -h0.0.0.0 database table > %nowfile%\record.sql

exit

第一段表示获取并设置当前时间。

第二段表示设置备份文件夹,如果没有则新建该文件夹(注意windows环境下新建文件夹的语法)。

第三段表示设置以备份日期为名的文件夹来区分。

第四段是利用mysqldump执行备份的语法:
C:\test\mysql\mysql-8.0.23\bin\mysqldump:mysqldump所在的位置;
root:远程数据库用户名;
123456:远程数据库密码;
0.0.0.0:远程数据库地址;
database:要备份的数据库名称;
table:要备份的表名。

第五段exit表示退出。

设置完成之后保存退出,双击该bat文件,正常情况下该脚本会执行一次,如果没有,说明该脚本存在问题。

注:
1.备份多个表:mysqldump -u用户 -p 数据库 表1 表2 …… 表N > 备份文件路径
2.备份1个数据库:mysqldump -u用户 -p -B 数据库 > 备份文件路径
3.备份多个数据库:mysqldump -u用户 -p -B 库1 库2 …… 库N >备份文件路径
4.备份所有数据:mysqldump -u用户 -p -A >备份文件路径
参考文章:https://blog.csdn.net/weixin_30361641/article/details/99012330

二、设置Windows定时任务

1.利用快捷键windows+R(windows快捷键即为键盘上画了一个电脑图案的那个)
打开以后是这个样子:
在这里插入图片描述
2.输入taskschd.msc,点击“确定”,会出现任务计划程序页面,如下图所示:
在这里插入图片描述
3.点击“创建基本任务”。
在这里插入图片描述
4.自定义输入基本任务的名称,以及描述等。
在这里插入图片描述
5.选择该基本任务执行周期。
在这里插入图片描述
6.设置基本任务开始时间
在这里插入图片描述
7.选择启动程序,即之前设置的脚本文件。
在这里插入图片描述
在这里插入图片描述
8.给脚本文件命名;
9.之后便可以在最初的界面看到该定时任务:
在这里插入图片描述

项目踩坑之处

在第一步创建脚本时,我仅在脚本中写了一行代码

C:\test\mysql\mysql-8.0.23\bin\mysqldump -uroot -p123456 -h0.0.0.0 database table > C:\test\record.sql

这导致每次备份后record.sql备份sql文件会被刷新,不能达到保存历史数据的目的,通过百度之后采取以日期命名文件夹的方法即可更好地进行数据地备份和历史数据的恢复。
本项目因为只备份一张表,所以我每次都是全表备份,如果是备份数据库,数据量比较大的情况下的话,应该考虑采用增量备份的方法,比如礼拜一全库备份,之后增量备份等。

附:如果在windows环境下需要全库备份,可以直接利用Navicat自带的定时备份工具

注:本文的Navicat版本为Navicat 15。
1.点击“自动运行”。
在这里插入图片描述
2.点击“新建批处理作业”。
在这里插入图片描述

3.依次点击“备份” --> 要备份的数据库名字 --> 可用的工作
在这里插入图片描述
4.双击后上方会出现选中的工作具体信息:
在这里插入图片描述
5.点击已选择的工作 --> 点击“保存” --> 输入配置文件名(建议用时间来命名) --> 点击“确定”
在这里插入图片描述
6.根据实际情况对该选择的工作进行设置,设置完成之后点击“确定”即可。
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/problemRecord/article/details/118331678