mysql版本[root@zxl-nginx ~]# mysql -V

mysql  Ver 14.14 Distrib 5.6.28, for linux-glibc2.5 (x86_64) using  EditLine wrapper

一、mysqldump

mysqldump仅适用于数据集较小场景

用法:mysqldump [options] [db_name [tbl_name ...]]

主要选项解释:

--all-databases, -A:备份所有数据库

--databases, -B:要备份的数据库,可以同时备份多个,使用空格分隔

--flush-logs, -F:备份前、请求到锁之后滚动日志,要记录下复制时的二进制日志

--flush-privileges:通知数据库重读授权表

--host=host_name, -h host_name:要备份的数据库的主机名,可以基于网络备份

--lock-all-tables, -x:请求锁定所有表之后再备份,对MyISAM,InnoDB,Aria做温备

--single-transaction:能够对InnoDB存储引擎实现热备

-u usename 备份的用户名

-p password 登陆数据库的密码

--events:备份事件调度器代码

--routines:备份存储过程和存储函数

--triggers:备份触发器

--master-date={0|1|2},0表示不记录,1表示距离为change master 语句,2表示记录为注释的change master语句

二、创建数据库以及表并插入数据mysql> create database zxl;

Query OK, 1 row affected (0.00 sec)

mysql> use zxl

Database changed

mysql> CREATE TABLE `users` (

->   `id` bigint(20) NOT NULL AUTO_INCREMENT,

->   `name` varchar(255) DEFAULT NULL,

->   PRIMARY KEY (`id`)

-> ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

Query OK, 0 rows affected (0.02 sec)

#这是创建表以及插入数据的示例,来自互联网。。。#-- ----------------------------

#-- Table structure for users

#-- ----------------------------

#DROP TABLE IF EXISTS `users`;

#CREATE TABLE `users` (

#  `id` bigint(20) NOT NULL AUTO_INCREMENT,

#  `name` varchar(255) DEFAULT NULL,

#  PRIMARY KEY (`id`)

#) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

#

#-- ----------------------------

#-- Records of users

#-- ----------------------------

#INSERT INTO `users` VALUES ('1', '小明');

#INSERT INTO `users` VALUES ('2', '小虎');

#INSERT INTO `users` VALUES ('3', '小花');

#INSERT INTO `users` VALUES ('4', '小花');

#INSERT INTO `users` VALUES ('5', '小花');

#INSERT INTO `users` VALUES ('6', '小虎');

插入数据mysql> INSERT INTO `users` VALUES ('1', '小明');

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO `users` VALUES ('2', '小虎');

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO `users` VALUES ('3', '小花');

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO `users` VALUES ('4', '小花');

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO `users` VALUES ('5', '小花');

Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO `users` VALUES ('6', '小虎');

Query OK, 1 row affected (0.00 sec)

查看插入的数据mysql> select * from users;

+----+--------+

| id | name   |

+----+--------+

|  1 | 小明   |

|  2 | 小虎   |

|  3 | 小花   |

|  4 | 小花   |

|  5 | 小花   |

|  6 | 小虎   |

+----+--------+

6 rows in set (0.00 sec)

三、备份数据库以及演示如何恢复[root@zxl-nginx ~]# mysqldump -uroot -p123456 --databases zxl --single-transaction --flush-logs --master-data=2 > /tmp/zxl_users.sql

Warning: Using a password on the command line interface can be insecure.

注:提示warning,因为5.6版本增加安全机制,不允许在命令行中出现密码,具体没研究,可以在my.cnf文件中加入[mysqldump]下加入用户以及密码就不会提示warning了。

备份数据库之后,再次插入新的数据。mysql> INSERT INTO `users` VALUES ('7', 'bob');

Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO `users` VALUES ('8', 'tom');

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO `users` VALUES ('9', 'lili');

Query OK, 1 row affected (0.00 sec)

查看新插入的数据mysql> select * from users;

+----+--------+

| id | name   |

+----+--------+

|  1 | 小明   |

|  2 | 小虎   |

|  3 | 小花   |

|  4 | 小花   |

|  5 | 小花   |

|  6 | 小虎   |

|  7 | bob    |

|  8 | tom    |

|  9 | lili   |

+----+--------+

9 rows in set (0.00 sec)

删除数据库zxlmysql> drop database zxl;

Query OK, 1 row affected (0.01 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

+--------------------+

4 rows in set (0.00 sec)

查看mysqldump备份的sql文件中的pos节点位置以及相应的二进制文件名

二进制文件以及pos节点如下:

-- CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000060', MASTER_LOG_POS=120;

使用mysqlbiglog查看二进制文件,删除数据库zxl的at位置是778[root@zxl-nginx data]# mysqlbinlog master-bin.000060

# at 778

#160120 14:25:42 server id 1  end_log_pos 867 CRC32 0x014503a4 Querythread_id=44exec_time=0error_code=0

SET TIMESTAMP=1453271142/*!*/;

drop database zxl

备份二进制日志位置[root@zxl-nginx ~]# mysqlbinlog --start-position=120 --stop-position=778 /usr/local/mysql/data/master-bin.000060 > /tmp/big_log.sql

恢复数据库[root@zxl-nginx ~]# mysql -uroot -p

Enter password:

查看恢复的数据库

关闭二进制日志mysql> set session sql_log_bin=0;

Query OK, 0 rows affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

| zxl                |

+--------------------+

5 rows in set (0.00 sec)查看恢复的表

mysql> use zxl;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;

+---------------+

| Tables_in_zxl |

+---------------+

| users         |

+---------------+

1 row in set (0.00 sec)

mysql> select * from users;

+----+--------+

| id | name   |

+----+--------+

|  1 | 小明   |

|  2 | 小虎   |

|  3 | 小花   |

|  4 | 小花   |

|  5 | 小花   |

|  6 | 小虎   |

+----+--------+

6 rows in set (0.00 sec)

注:后增加的数据没有恢复过来

恢复二进制备份的big-log文件[root@zxl-nginx ~]# mysql -uroot -p

Enter password:

再次查看users表mysql> select * from users;

+----+--------+

| id | name   |

+----+--------+

|  1 | 小明   |

|  2 | 小虎   |

|  3 | 小花   |

|  4 | 小花   |

|  5 | 小花   |

|  6 | 小虎   |

|  7 | bob    |

|  8 | tom    |

|  9 | lili   |

+----+--------+

9 rows in set (0.00 sec)

开启big-logmysql> set session sql_log_bin=1;

Query OK, 0 rows affected (0.00 sec)

注:关闭不关闭二进制只有不进行任何操作即可不关闭,原因你懂的。

注:在实际恢复时最好编辑my.cnf配置文件,添加如下项:

skip-networking    //跳过网络功能来恢复数据

mysql 51 bin_mysqldump和bin-log备份以及恢复示例相关推荐

  1. mysql整备_【mysql】使用xtrabackup在线增量备份及恢复数据库

    一.Percona Xtrabackup 简介 1.Xtrabackup  bin目录文件 介绍 1)innobackupex innobackupex 是xtrabackup的一个符号链接 . in ...

  2. mysql cascade 查询_Python全栈 MySQL 数据库 (SQL查询、备份、恢复、授权)

    ParisGabriel 每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰  开局一张图 今天接着昨天的说 索引有4种: 普通 索引 :index 唯一索引:unique 主键索引:prim ...

  3. mysql备份文件类型_mysql8 参考手册--备份和恢复类型

    物理(原始)与逻辑备份 物理备份由存储数据库内容的目录和文件的原始副本组成.这种类型的备份适用于大型的重要数据库,这些数据库在出现问题时需要快速恢复. 逻辑备份保存表示为逻辑数据库结构(CREATE ...

  4. MariaDB/MySQL备份和恢复(三):xtrabackup用法和原理详述

    MariaDB/MySQL备份恢复系列: 备份和恢复(一):mysqldump工具用法详述 备份和恢复(二):导入.导出表数据 备份和恢复(三):xtrabackup用法和原理详述 xtrabacku ...

  5. mysql数据库的备份和恢复的常用方法_MySQL数据库备份与恢复方法(转)

    常有新手问我该怎么备份数据库,下面介绍3种备份数据库的方法: MySQL中的每一个数据库和数据表分别对应文件系统中的目录和其下的文件. 在Linux下数据库文件的存放目录一般为/var/lib/mys ...

  6. 一个案例讲明白!如何更安全地实现数据备份和恢复

    导读:对于任何一个企业来说,数据安全的重要性不言而喻.凡是涉及数据的问题,都是会造成惨重损失的大问题.能够影响数据安全的事件,都是极小概率的事件,但这些事件一旦发生,我们的业务就会遭受惨重损失. 所谓 ...

  7. mysql根据bin log恢复_MySQL 通过 binlog 恢复数据

    目的 通过了解 binlog 日志的相关配置,简单掌握通过 binlog 对数据库进行数据恢复操作: mysql 日志文件 任何成熟软件都会有一套成熟的日志系统,当软件出现问题时,这些日志就是查询问题 ...

  8. mysql bin日志备份_mysql之binlog日志备份还原

    实例: 在mysql有时执行了错误的update或者delete时导致大量数据错误恢复的办法.执行时没有开启事务,也没有对数据进行.这时就需要使用到sqlbinlog工具. sqlbinlog需要开启 ...

  9. Mysql的undo、redo、bin log分析

    目录 关于undo log 关于redolog 关于binlog 一个事务的提交流程 undo log :记录数据被修改之前的样子 redo log:记录数据被修改之后的样子 bin log:记录整个 ...

最新文章

  1. 构建自己的PHP框架--构建缓存组件(1)
  2. 给Nginx配置一个自签名的SSL证书
  3. LiveVideoStackCon讲师热身分享 ( 六 ) —— 多媒体业务QoEQoS指标设计与监控
  4. 使用生成器创建新的迭代模式
  5. Mybatis核心配置文件xml详解
  6. 苹果应用上架遇到的问题(2017年4月27日)
  7. sql查询mysql参数配置_查询参数配置
  8. 【AI面试题】AlexNet、VGGNet、GoogLeNet,ResNet等网络之间的区别是什么
  9. libspark.swfassist的体会
  10. jQuery中animate()的方法以及$(body).animate({scrollTop:top})不被Firefox支持问题的解决...
  11. LaTeX标题、目录及段落的编辑(清晰实例)
  12. Git 工具之TortoiseGit小乌龟安装配置及使用
  13. 三星s10刷linux,三星S10/S10+刷入TWRP_Recovery最新版教程
  14. winform窗口的切换
  15. 程序员专属浪漫快拿去哄npy吧
  16. 总结一些常见的国际标准化组织
  17. 运用Python+Pygame开发坦克大战游戏_版本V1.01
  18. 数据库基础知识ACID,隔离级别RC,RR,RU,SERIALIZABLE,Phantom Rows幻读,解决幻读,脏读dirty read
  19. 一文了解常用思维导图与画图软件
  20. 从节点到网络:掌握 Web3 基础知识

热门文章

  1. 智伴机器人三级分销模式_有赞三级分销?有赞分销模式怎
  2. 信号与系统郑君里上册pdf_信号与系统(上册)
  3. 订单派送中多久能送到_美森卡派送到仓库后多久能上架呢?
  4. Buildroot构建指南——工具链
  5. 西门子cpu指示灯含义_西门子S7200仿真软件如何使用?
  6. linux如何卸载virtualbox,如何在Mac上卸载VirtualBox | MOS86
  7. python连接中控考勤机分析数据
  8. Tomcat8.01及nginx-1.8.1安装
  9. Java使用jackson问题解决
  10. CISCO 防火墙建立穿越NAT的×××几种解决方法