**

使用mysqldump进行数据库备份

**
mysql数据库自带备份命令mysqldump,可对数据库进行备份操作
最简单的备份是将数据库备份至本地,生成 **.sql文件

编写备份脚本文件
(创建一个txt文件,写入批处理脚本,再将文件的后缀改为.bat变为批处理脚本文件)

rem autherBeginnerXiao
rem date:20200814
rem ******Backup MySQL Start******
@echo off
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"::创建存储的文件夹
if not exist "D:\mysql_backup" md "D:\mysql_backup"::执行备份操作
"D:\mysql-8.0.20-winx64\bin\mysqldump" --opt --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "demo" >D:\mysql_backup\backup_demo_%Ymd%.sql::删除两周前的备份数据
forfiles /p "D:\mysql_backup" /m backup_*.sql -d -14 /c "cmd /c del /f @path"@echo on
rem ******Backup MySQL End******

其中一些关键语句解释:

1.为备份文件存储位置设立一个文件夹,即如果不存在该文件就md创建该文件夹

::创建存储的文件夹
if not exist "D:\mysql_backup" md "D:\mysql_backup"

2.备份操作:
“D:\mysql-8.0.20-winx64\bin\mysqldump” :执行本地mysql文件安装路径的bin文件夹中的mysqldump
–single-transaction=TRUE: 备份时没有锁表
–user=root :mysql帐号
–password=root :mysql密码
–host=127.0.0.1 :mysql的ip地址
–port=3306 :mysql的端口号
–default-character-set=utf8 :备份默认编码
events “demo” :进行备份的数据库名称
->D:\mysql_backup\backup_demo_%Ymd%.sql :备份文件存储的路径
set “Ymd=%date:0,4%%date:5,2%%date:~8,2%” :设置备份的日期参数,以供给sql命名使用
关于时间参数的参考:
%date:~0,10% //提取年月日信息
%date:~-3% //提取星期几信息
%time:~0,5% //提取时间中的时和分
%time:~0,-3% //提取时和分和秒信息
*注意由于脚本文件以空格和逗号进行分隔执行,所以有关路径的如果路径中有空格,必须以双引号引起来
*通常建议有关路径的都用双引号引起来

::执行备份操作
"D:\mysql-8.0.20-winx64\bin\mysqldump" --opt --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "demo" >D:\mysql_backup\backup_demo_%Ymd%.sql

3.对备份文件进行过期删除处理
Forfiles:从文件夹或树中选择要进行批处理的文件。
语法:

forfiles [/p Path ] [/m SearchMask ] [/s ] [/c Command ] [/d [{+ | - }] [{MM / DD / YYYY | DD }]]

参数:
/p Path:指定Path ,表明要从哪里开始搜索。默认的文件夹是当前工作目录,该目录通过键入句号(.) 指定。
/m SearchMask:按照SearchMask 搜索文件。默认的SearchMask 是*.* 。
/m backup_*.sql 指的是搜索以backup_为前缀,.sql为后缀的文件
/s:指示forfiles 在子目录中搜索。
/c Command:在每个文件上运行指定的Command 。带有空格的命令字符串必须用引号括起来。默认的Command 是"cmd /c echo @file" 。
/d [{+ | - }] [{MM / DD / YYYY | DD }]:选择日期大于或等于(+ )(或者小于或等于(- ))指定日期的文件,其中MM / DD / YYYY 是指定的日期,DD 是当前日期减去DD 天。如果未指定+ 或- ,则使用+ 。DD 的有效范围是0 - 32768。
-d -14:即前14天

::删除两周前的备份数据
forfiles /p "D:\mysql_backup" /m backup_*.sql -d -14 /c "cmd /c del /f @path"

跨主机备份

(一)将需要的数据库备份至其他主机的指定数据库内
语法:
mysqldump --host=源数据库ip -u源数据库账户 -p源数据库密码 --opt 要备份的数据库 | mysql --host=目标机器ip -u目标数据库用户名 -p目标数据库密码 -C 目标数据库

mysqldump --host=127.0.0.1 -uroot -proot --opt demo | mysql --host=11.11.11.11  -uroot -proot -C demo

(二)远程备份数据库的sql文件
语法:

"D:\mysql-8.0.20-winx64\bin\mysqldump" --opt --user=root --password=root --host=远程数据库ip --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "demo" >D:\mysql_backup\backup_demo_%Ymd%.sql

注:
进行远程备份的前提是,远程数据库需要创建一个对本机IP能够访问的用户,创建远程访问用户操作,见blog:MySQL数据库用户创建、修改、授权及远程访问

还原数据库
两种还原方法:

mysqldump -uroot -proot -h127.0.0.1 demo < "D:\mysql_backup\backup_demo_20200814.sql"
mysql -uroot -proot demo< "D:\mysql_backup\backup_demo_20200814.sql"

Windows定时执行脚本任务

我们可以通过设定Windows定时任务来实现定时运行备份脚本,以达到定时备份的目的
1.可以在程序搜索列表中搜索“任务计划程序”

2.打开了任务计划程序后点击右侧的“创建基本任务”,并对计划任务的名称和描述进行编写:

3.选择定时执行的周期:

4.设置你所需要执行的时间,备份一般可以放在深夜进行

5.让该定时任务启动脚本程序

6.选择编写完成的备份脚本文件:

7.此时会给我们一个任务概述,确认信息无误后点击完成

8.创建好后,可在任务列表中看到我们所创建的任务,可以通过右键该条任务进行删除等处理

————————————————
版权声明:本文为CSDN博主「BeginnerXiao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42215697/article/details/108003841

Windows下 mysql定时备份相关推荐

  1. Windows下Mysql定时备份的实现

    使用mysql的mysqldump命令,结合windows的任务计划程序,可以实现Mysql数据的自动备份. 一.批处理文件bat的创建 @echo off set "Ymd=%date:~ ...

  2. CentOS7下mysql定时备份并发送邮件到指定邮箱脚本

    CentOS7下mysql定时备份并发送邮件到指定邮箱脚本 网上有对应的教程,但是使用的mutt发送的邮件. 我从昨晚九点开始搞,搞到凌晨三点都没弄好,早上又搞了一早上也没弄好.因为网上的教程太老,或 ...

  3. linux java mysql 备份 runtime_Linux下mysql定时备份脚本以及java实现

    sh脚本介绍 #!/bin/bash ####################################################### # crontab 定时备份########### ...

  4. linux下mysql定时备份命令

    linux下,如需对mysql做备份,可以做个shell文件,一劳永逸 [root@iZ2zeavn7cbxg2g9bs5donZ mysqlbackup]# cat mysql_backup.sh ...

  5. windows下mysql自动备份

    在windows下,mysql的备份其实也很简单. 写bat文件 首先,需要知道mysql备份的关键语句: mysqldump.exe --opt --single-transaction=TRUE ...

  6. linux下mysql定时备份数据库

    一.用命令实现备份 首页进入mysql的bin目录 1.备份数据 #mysqldump -uusername -ppassword discuz > discuz_2010-04-01.sql ...

  7. CentOS7环境下MySQL定时备份

    1.新建备份脚本 vi /home/mysqlbak/mysql_bak.sh填入以下内容: mysql_user="USER" #MySQL备份用户 mysql_password ...

  8. mysql在linux下备份还原,Linux下MySQL的备份与还原

    Linux下MySQL的备份与还原 1. 备份 [root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [roo ...

  9. windows下mysql备份

    windows下mysql备份 关键字: windows mysql 备份 一.单机备份 1.   ============================     假想环境:     MySQL 安 ...

最新文章

  1. 专访 | 在AI 医疗这个热门的赛道上,阿里在怎么玩?
  2. 企业分布式微服务云SpringCloud SpringBoot mybatis (二)Spring Boot属性配置文件详解...
  3. Altium designer快捷键汇总
  4. ajax中return不生效
  5. 史上最简单的SpringCloud教程 | 第五篇: 路由网关(zuul)
  6. NameNode之文件系统目录树
  7. lru算法c语言实现单链表,基于单链表实现LRU算法
  8. L - Oil Deposits
  9. Android存储(1)-- 你还在乱用Android存储嘛!!!
  10. mysql msi失败_MySQL .msi 安装失败改用.zip安装步骤
  11. leach算法的实现过程_LEACH算法源代码
  12. 打包labview程序
  13. round()函数的用法
  14. php include require m.jb51.net,phpmyadmin下载、安装、配置教程
  15. 软件构造笔记——Rep Invariantand Abstraction Function
  16. Wavefront公司的.obj文件格式及.mtl文件格式
  17. 如何给宝宝取名才合适
  18. AHP层次分析法求解过程(matlab代码)
  19. 数据清洗 -- 4 基于英文的自然语言处理
  20. 2.6 haas506开发教程-高级组件库-net

热门文章

  1. js43刀片服务器内存位置,IBM Power服务器简介(ppt 43页)-精.ppt
  2. 日历插件---FullCalendar (vue3中实现,常用详细的功能以及样式、有源码)
  3. java中多个条件模糊查询,带条件的查询—模糊查询
  4. 点击图标/链接发起QQ临时会话
  5. 中值滤波与均值滤波对椒盐噪声处理的比较
  6. 10分钟拿下雪花算法
  7. MacOS之软件安装教程(二)
  8. mtk_online_mac地址
  9. Scratch案例——巧解数学题,求累加和
  10. firefox浏览器和火狐浏览器的驱动匹配问题,及对应的版本驱动下载(能解决99%问题)收藏