linux下开启mysql的binlog日志功能

1.配置mysql配置文件my.cnf(内容如下)。

#配置文件储存的位置
log-bin=mysql-bin
#5.7以及以上版本需要配置这一行(保证唯一性,可随意输入)
server-id=123
#binlog的格式 :statement(保存语句)、row(保存执行后的结果)、mixed(同时保存语句和结果)
binlog-format=ROW
#表示每执行一次就同步
sync-binlog=1

2.重启mysql服务后。查看日志功能是否正常开启

mysql> show variables like 'log_%';

恢复数据

创建新的日志控制开始点(创建新的日志文件) mysql

mysql> flush logs;

查看创建的日志文件(如下图最新生成的mysql-bin.00003) mysql

创建数据库 mysql

DROP DATABASE IF EXISTS `study1`; CREATE DATABASE `study1`;

创建数据表 mysql

DROP TABLE IF EXISTS `study1`.`tb_class`;
CREATE TABLE `study1`.`tb_class` (
`id` int(11) NOT NULL,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`score` int(255) NULL DEFAULT NULL,
`grade` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

插入数据 mysql

INSERT INTO `study1`.`tb_class` VALUES (1, 'a', 10, 'a');
INSERT INTO `study1`.`tb_class` VALUES (2, 'a', 10, 'a');
INSERT INTO `study1`.`tb_class` VALUES (3, 'a', 10, 'cc');
INSERT INTO `study1`.`tb_class` VALUES (4, 'a', 10, 'dd');
INSERT INTO `study1`.`tb_class` VALUES (5, 'a', 10, 'ee');
INSERT INTO `study1`.`tb_class` VALUES (6, 'a', 10, 'ff');

删除表数据,插入新数据 mysql

DELETE from `study1`.`tb_class`;
INSERT INTO `study1`.`tb_class` VALUES (99999, 'a', 10, 'a');
INSERT INTO `study1`.`tb_class` VALUES (999995, 'a', 10, 'b');
INSERT INTO `study1`.`tb_class` VALUES (999996, 'a', 10, 'c');
查找恢复点,即删除数据之前的备份点(mysql-bin.000014为上面生成的日志文件) linux

/usr/bin/mysqlbinlog --no-defaults -v /var/lib/mysql/mysql-bin.000003  (可以使用find命令查找mysqlbinlog、mysql-bin.000003路径)

恢复数据(恢复点如上截图,此处找到删除前备份点为2766) linux

/usr/bin/mysqlbinlog --no-defaults -v /var/lib/mysql/mysql-bin.000003  --stop-position=2766 -v | mysql -uroot -p密码

可以看到已经恢复的数据

 删除表 mysql

DROP TABLE IF EXISTS `study1`.`tb_class`;

恢复 linux

/usr/bin/mysqlbinlog --no-defaults -v /var/lib/mysql/mysql-bin.000003 --stop-position=2766 -v | mysql -uroot -p密码

删库 mysql

DROP DATABASE `study1`;

恢复 linux

/usr/bin/mysqlbinlog --no-defaults -v /var/lib/mysql/mysql-bin.000003 --stop-position=2766 -v | mysql -uroot -p密码

mysql 开启binlog日志,恢复误删的表、数据、mysql库的更多相关文章

  1. 使用Binlog日志恢复误删的MySQL数据

    解到: MySQL的binlog日志是什么?通常是用来干什么的? 模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据. 写这篇文章的初衷,是有一次我真的险些把测试数据库的一张表给删除了,当 ...

  2. Mysql利用binlog日志恢复数据操作(转)

    a.开启binlog日志:1)编辑打开mysql配置文件/etc/mys.cnf[root@vm-002 ~]# vim /etc/my.cnf在[mysqld] 区块添加 log-bin=mysql ...

  3. MySQL通过binlog日志恢复数据

    一.查看下自己的MySQL是否开启了binlog日志 # 是否启用binlog日志 OFF:关闭 ON:开启 show variables like 'log_bin'; 二.开启binlog日志 在 ...

  4. mysql开启binlog日志和慢查询日志

    1)首先,为什么要开启binlog日志和慢查询日志呢? binlog日志会记录下数据库的所以增删改操作,当不小心删除.清空数据,或数据库系统出错,这时候就可以使用binlog日志来还原数据库,简单来说 ...

  5. MySQL的binlog日志恢复(转)

    binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日 ...

  6. MySQL开启binlog并且保存7天有效数据

    开启binlog日志(在[mysqld]下修改或添加如下配置): server-id=1 log-bin=mysql-bin binlog_format=MIXED binlog日志模式 Mysql复 ...

  7. 解说mysql之binlog日志以及利用binlog日志恢复数据

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

  8. Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 一 ...

  9. 【转】Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

随机推荐

  1. JDK卸载和彻底删除

    第一步:点击"控制面板". 第二步:点击"卸载程序". 第三步:进入到"程序和功能"界面,找到jdk的两个程序:①java 8 update ...

  2. oracle查询出现科学计数法问题

  3. 使用React实现一个TodoList案例

    1.效果图: 2.项目源码 3.源码 TodoList.js import React, { Component, Fragment } from 'react'; import TodoItem f ...

  4. CSS3中有哪些新特性

    新增各种CSS选择器 (: not(.input):所有 class 不是"input"的节点) 圆角 (border-radius:8px) 多列布局 (multi-column ...

  5. Linux操作系统与项目部署

    Linux操作系统与项目部署 注意:本版块会涉及到操作系统相关知识. 现在,几乎所有智能设备都有一个自己的操作系统,比如我们的家用个人电脑,基本都是预装Windows操作系统,我们的手机也有Andro ...

  6. 在oracle控制台当你输入错误的时候,还不能删除,回退的解决方法

    对于回退出现^H解决方法 oracle@prd:/home/oracle$sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on ...

  7. Java基础之详谈IO流

    Java基础知识.IO流详细讲解.你所要的IO这里都有

  8. IDEA小技巧:Markdown里的命令行可以直接运行了

    作为一名开发者,相信大部分人都喜欢用Markdown来写文章和写文档. 如果你经常用开源项目或者自己维护开源项目,肯定对于项目下的README文件也相当熟悉了吧,通常我们会在这里介绍项目的功能.如何使 ...

  9. MQ系列:消息中间件执行原理

    1 关于消息中间件 1.1 什么是消息中间件? 消息中间件是指在分布式系统中完成消息的发送和接收的基础软件. 消息中间件也可以称消息队列(Message Queue / MQ),用高效可靠的消息传递机 ...

  10. JavaScript学习基础1

    ##JavaScript: # 概念:一门运行在客户端的脚本语言 *运行在客户端浏览器中的.属于前端三件套之一,属于静态资源,每一个浏览器都有JavaScript的解析引擎 *脚本语言:不需要编译,直 ...