Windows环境下进行mysql数据库备份[通俗易懂]

Windows环境下进行mysql数据库备份[通俗易懂]备份功能使用mysqldump进行数据库备份跨主机备份还原数据库Windows定时执行脚本任务使用mysqldump进行数据库备份mysql数据库自带备份命令mysqldump,可对数据库进行备份操作最简单的备份是将数据库备份至本地,生成**.sql文件编写备份脚本文件(创建一个txt文件,写入批处理脚本,再将文件的后缀改为.bat变为批处理脚本文件)remautherBeginnerXiaoremdate:20200814rem******BackupMySQLStart***

大家好,又见面了,我是你们的朋友全栈君。

使用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"
  1. 备份操作:
    “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
  1. 对备份文件进行过期删除处理
    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.创建好后,可在任务列表中看到我们所创建的任务,可以通过右键该条任务进行删除等处理
在这里插入图片描述
本文为编程小白自学知识归纳,如有错误与不足敬请指正!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138774.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 串口服务器中文使用文档,MOXA 串口服务器中文使用文档.doc

    MOXA串口服务器中文使用文档MOXA串口联网服务器NPORT5130特点-以太网口支持100/10M自适应,串口支持RS-422,RS-485(2w/4w)-低成本、信用卡大小-支持Windows/LinuxCOM串口驱动程序模式-提供包括TCPServer、TCPClient、UDPServer/Client和EthernetModem在内的不同socket操作模式-…

    2022年4月7日
    42
  • quartus ii12.1安装教程_ghost手动安装教程

    quartus ii12.1安装教程_ghost手动安装教程安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,安装包路径也不要有中文。1.鼠标右击【QuartusII11.0】压缩包选择【解压到QuartusII11.0】。2.双击打开解压后的【QuartusII11.0】文件夹。3.双击打开【Quartus】文件夹。4.鼠标右击【11.0_quartus_windows.exe】选择【以管理员身份运行】。5.点击【Install】。6.解压中。7.勾选【AllowAlter…

    2022年10月15日
    0
  • 数据结构中的elemtype、elem是什么

    数据结构中的elemtype、elem是什么ElemType是数据结构的书上为了说明问题而用的一个词。它是elementtype(“元素的类型”)的简化体。 因为数据结构是讨论抽象的数据结构和算法的,一种结构中元素的类型不一定是整型、字符型、浮点型或者用户自定义类型,为了不重复说明,使用过程中用“elemtype”代表所有可能的数据类型,简单明了的概括了整体。在算法中,除特别说明外,规定ElemType的默认是int型。elem是单词…

    2022年5月19日
    55
  • java官方编译器_JAVA 编译器

    java官方编译器_JAVA 编译器javac做了些什么?说白了,javac就是一个编译器;编译器就是把一种语言规矩转换成另一种语言规矩,也就是将对人友好的语言转换成对机器友好的语言。因此,javac是把Java源代码编译成Java字节码,即JVM可以识别的二进制;表面上就是将.java文件转成.class文件。javac做了些什么?主要由4个模块组成。词法剖析器:识别Java中的if、else、for、while等关键字及其语句的…

    2022年7月13日
    17
  • Oracle中的NVL函数「建议收藏」

    Oracle中的NVL函数「建议收藏」Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数。主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以。下面简单介绍一下几个函数的用法。在介绍这个之前你必须明白什么是oracle中的空值null1.NVL函数NVL函数的格式如下:NVL(expr1,expr2)含义是:如果oracle第一个…

    2022年7月13日
    11
  • 日本の行政区画–都道府県

    日本の行政区画–都道府県中国の行政区画–省市自治区に類似して、日本の行政区画は都道府県(とどうふけん)である。全部で一都、一道、二府と43県がある。一都(いっと)とは東京都で、日本の政治、経済、文化などの中心である。一道(いちどう)は北海道で、開発が他の土地より遅い。二府(にふ)は、京都府と大阪府で、関西の主な部分で、歴史と経済の面で非常に重要な地区である。日本の県は中国の省に当たり(面積はずっと狭いが)、全部で43県

    2022年7月11日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号