方案一:采用mysql自带的工具mysqldump。

脚本文件backup.bat如下:

set  "YMD=%date:~,4%%date:~5,2%%date:~8,2%"
cd    /d   C:\Program Files\MySQL\MySQL Server 5.7\bin
mysqldump  --no-defaults    -uroot    -p"501501"    sdxs    >  E:/databaseBackupData/sdxs/sdxs_%YMD%.sql

解释如下:

      1、set  "YMD=%date:~,4%%date:~5,2%%date:~8,2%"              表示给变量YMD赋值为执行该脚本时的年月日,比如为20180505。

      2、cd    /d   C:\Program Files\MySQL\MySQL Server 5.7\bin     表示切换cmd目录到C:\Program Files\MySQL\MySQL Server 5.7\bin中。特别注意 /d 必须加上。否则失败。

      3、mysqldump  --no-defaults    -uroot    -p"501501"    sdxs     >  E:/databaseBackupData/sdxs/sdxs_%YMD%.sql       

         表示执行mysqldump 命令--no-defaults 的作用主要是解决执行该命令出现error的--no-beep。即如下图错误。

     4、完整的mysqldump命令表示如下:

       mysqldump    --no-defaults 

--host=120.120.120.120

--port=3306

--user=root

--password=501501

--events

--routines 

--triggers

--flush-logs 

--add-drop-database

--add-drop-table

--add-locks

--complete-insert

--default-character-set=utf8

(--lock-all-tables) 一般不用

--log-error=E:/databaseBackupData/sdxs/sdxs_%YMD%.err

(--no-data) 一般不用

--single-transaction 

 --master-data=2 

--databases sdxs

E:/databaseBackupData/sdxs/sdxs_%YMD%.sql

        如果添加 --no-data 选项,则只备份结构不会备份数据。

       --host=127.0.0.1 用于指定mysql数据库所在的ip地址,这里指定为本地的ip 。因此可以远程备份,异地备份,该选项用于指定备份哪一台机器上的mysql数据库。

       --port=3306 用于指mysql定数据库服务使用的端口,这里指定为3306端口 。

       --databases 数据库A,数据库B,数据库C等,用于指定备份指定mysql服务器的哪些数据库。如果备份这台mysql服务器上的所有的数据库的所有表,则用 --all-databases 选项,真正在生产环境中,我们应该导出的是整个mysql服务器中的数据,而不是单个库,因此应该使用--all-databases。

       --user="igoodful"  用于指定数据库的用户名,这里指定用户名为igoodful 。

       --password="123456"  表示该数据库用户的密码,这里是给igoodful用户指定的密码为123456 。

       --comments="很好"     表示给备份文件添加注释。

       --default-character-set=utf8 表示该数据库使用的默认字符集 。

       --events       表示数据库的事件也会备份,默认不会备份事件。

       --routines   表示导出存储过程以及自定义函数,默认不会备份存储过程以及自定义函数

       --triggers  表示数据库的触发器也会备份,默认会备份触发器

       --flush-logs 表示日志滚动一次,以免日志不一致。

       --add-drop-database 表示每个数据库创建之前会先执行drop对应的数据库,即会在备份文件中先执行drop 对应的数据库操作。

       --add-drop-table       表示每个数据表创建之前会先执行drop对应的数据表,即会在备份文件中先执行drop 对应的数据表操作。默认执行drop,可以添加--skip-add-drop-table取消drop。

      --add-locks  在每个表导出之前增加LOCK TABLES并且之后UNLOCK  TABLE。(默认为打开状态,使用--skip-add-locks取消选项)

      --complete-insert  表示使用完整的insert语句(包含列名称)。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。

     --default-character-set=utf8   表示指定的字符集。

     --lock-all-tables 表示提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁。与--single-transaction 互斥

     --log-error=E:/databaseBackupData/sdxs/sdxs_%YMD%.err 表示附加警告和错误信息到给定文件。

     --no-data 表示不导出任何数据,只导出数据库表结构。

     --single-transaction 表示该选项在导出数据之前提交一个BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于多版本存储引擎,仅InnoDB。本选项和--lock-tables 选项是互斥的,因为LOCK  TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用--quick 选项。该选项实现热备份。热备(hot backup):备份的同时,业务不受影响。

  --master-data=2 表示mysqldump导出数据时,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,在slave上导入数据时就会执行这个语句,salve就会根据指定这个文件位置从master端复制binlog。默认情况下这个值是1。当这个值是2的时候,chang master to也是会写到dump文件里面去的,但是这个语句是被注释的状态。记录备份那一时刻的二进制日志的位置。

备份到120的有:

备份到106的有:bat存放脚本文件,data存放备份的数据数据

5、备份后使用备份的sql文件时,特别注意下面的语句。会创备份的建数据库(如果不存在该库),而且使用创建的数据库来执行备份中的sql语句。

windows上备份mysql数据库的更多相关文章

  1. 在windows上安装MySQL数据库注意点及Navicat Premium 15的破解

    在windows上安装MySQL数据库  跟随慕课网教程(http://www.imooc.com/wiki/mysqllesson/mysqlwindows.html)下载安装MySQL: 其中注意 ...

  2. 本地Windows上安装 MySQL数据库

    1.首先下载mysql安装文件,下载地址:https://dev.mysql.com/downloads/mysql/ 2.将下载下来的压缩包解压到本地一个文件夹中 3.在文件根目录下新增my.ini ...

  3. Windows定时备份Mysql数据库

    1.新建批处理文件bat(随意命名:如auto_backup_mysql_data.bat) 2.在批处理文件里添加如下命令 %1 mshta vbscript:createobject(" ...

  4. 备份MySQL数据库并上传到阿里云OSS存储

    1. 环境配置 要将本地文件上传到阿里云oss中, 必须使用阿里云提供的工具 ossutil, 有32位,也有64位的, Linux和Windows都有.具体可以到阿里云官网下载 官网及文档: htt ...

  5. Windows系统定时备份MySQL数据库

    当一个网站投入使用时,定期备份数据库是必要的事.那么,在Windows系统上,我们该如何做呢? 如下语句可以实现备份及还原MySQL数据库: 备份MySQL数据库 mysqldump -uroot - ...

  6. Linux下自动备份MySQL数据库并上传到远程FTP服务器

    Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明:  1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...

  7. 使用Windows任务计划程序和Python备份Mysql数据库

    目标:每日定时自动备份Mysql数据库 方案: 1.安装Python: 使用的Python版本是Python3.7.1,下载地址:https://www.python.org/downloads/re ...

  8. 批处理命令 BAT备份MySQL数据库

    批处理命令 BAT备份MySQL数据库 作者: 字体:[增加 减小] 类型:转载 时间:2009-07-23我要评论 MySQL数据的备份工具也许有很多,在这我要给大家分享一下通过DOS批处理命令和M ...

  9. Linux下定时备份MySQL数据库的Shell脚本

    Linux下定时备份MySQL数据库的Shell脚本   对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...

随机推荐

  1. JVM工具jcmd实践

    暂时参考以下链接,后续补充自己的实践. https://www.jianshu.com/p/388e35d8a09b

  2. ubuntu下文件压缩/解压缩

    ubuntu下文件压缩/解压缩 http://blog.csdn.net/luo86106/article/details/6946255 .gz 解压1:gunzip FileName.gz 解压2 ...

  3. 23种设计模式之适配器模式(Adapter)

    适配器模式将一个接口转换成客户希望的另一个接口,从而使接口不兼容的那些类可以一起工作.适配器模式既可以作为类结构型模式,也可以作为对象结构型模式.在类适配器模式中,通过使用一个具体类将适配者适配到目标 ...

  4. ssh免密码登录之ssh-keygen的用法

    A服务器:192.168.100.2 B服务器:192.168.100.3 要达到的目的:A服务器ssh登录B服务器不需要输入密码 1.在A服务器下使用ssh-keygen命令生成公钥/私钥密钥对,执 ...

  5. 浅析重定向与反弹Shell命令

    0×01    简介 反弹shell在漏洞证明和利用的过程中都是一个直接有力的手段.由于安全工作或者学习的需要,我们或多或少都会接触到各种反弹shell的命令,于是就有了这个能稍微帮助初学者理解的文档 ...

  6. 【POJ2888】Magic Bracelet Burnside引理+欧拉函数+矩阵乘法

    [POJ2888]Magic Bracelet 题意:一个长度为n的项链,有m种颜色的珠子,有k个限制(a,b)表示颜色为a的珠子和颜色为b的珠子不能相邻,求用m种珠子能串成的项链有多少种.如果一个项 ...

  7. unity3d的优化场景技术LOD+IOC

    一.unity3d的优化场景技术  LOD+IOC 遮挡剔除(occlusion culling)其实就是在摄像机范围内的物体才被渲染出来,没有在视野范围内的,统统关掉渲染,这样能让性能大大提高. I ...

  8. Java虚拟机五 堆的参数配置

    堆空间是Java进程的重要组成部分,几乎所有的应用相关的内存空间都和堆有关. 1.最大堆和初始堆的设置 当Java程序启动时,虚拟机就会分配一块初始堆空间,使用参数 -Xms 指定这块空间的大小.一般 ...

  9. Spring Cloud Eureka 服务消费者

    参考<spring cloud 微服务实战> 现在已经构建了服务注册中心和服务提供中心,下面就来构建服务消费者: 服务消费者主要完成:发现服务和消费服务.其中服务的发现主要由Eureka的 ...

  10. js 的基础知识

    一.弱类型意识 js变量是没有类型的 var  a = 1;  //a 就是一个变量 不要提什么类型 变量可以赋任何类型的值 类型仅仅是值的性质 与变量无关 Js的基本类型 变量未赋值时,其值为und ...