一:开启数据库日志记录

(1)在查看数据库是否开启日志记录,默认是OFF,即关闭状态。(可在数据库中执行该查询语句,也可在服务器端执行)

show variables like 'log_bin';

(2)开启数据库日志记录功能(在服务器端执行)

  首先,查看my.cnf文件路径。

find / -name my.cnf

  

  然后,打开my.cnf配置文件,进行编辑。

vi /etc/my.cnf

  

  接下来,在配置文件中添加, log-bin=mysql-bin,如图。

  

  最后,重启mysql。

service mysqld restart

  查看日志启动状态,启动日志成功。

二:日志记录使用(记录日志+查看日志+恢复日志)

(1)查看日志记录文件地址

一般mysql日志记录会生成【mysql-bin.000001】格式的文件。我们输入命令:

find / -name mysql-bin.000001

  

可以看出,我们的日志文件路径在【/var/lib/mysql/】下。

(2)我们执行,刷新操作(sql语句)

flush logs;

再看日志记录,会发现多了一条日志版本。

(3)让我们来看一下最后一条日志信息的相关信息。

show master status;

 

位置信息为106。并且以后的增删改操作就记录在这个最新的bin-log日志里。

(4)让我们来清空日志信息。

reset master;

  

已经没有最新版本那个日志文件了。

(5)测试对数据库进行修改的记录。

我在数据库中删除了一条数据,查看日志状态,发现position字节已经增多,说明,日志记录有改动了。

接下来,让我们看看都改动了哪些内容。

(注意:我们如果直接用vi命令打开日志文件会乱码,所以我们需要先找到mysqlbinlog文件路径,执行使用该命令才能打开)

我的服务器上mysqlbinlog文件路径为【/usr/bin/mysqlbinlog】

然后执行

/usr/bin/mysqlbinlog --no-defaults mysql-bin.000002

打开日志文件如下:

(6)通过日志记录进行数据恢复

  • 找到需要恢复到日志记录某个版本,此处举例:mysql-bin.000002,例如:
/usr/bin/mysqlbinlog --no-defaults mysql-bin.000002|mysql -uroot -p
  • 根据开始位置或者结束位置来恢复自己想恢复的参数,例如:

  --stop-position = "100"    --start-position = "50"

/usr/bin/mysqlbinlog --no-defaults mysql-bin.000002 --stop-position="303"|mysql -uroot -p
  • 根据开始日期时间或者结束位置来恢复自己想恢复的参数

  --stop-date= "2016-03-02 12:00:00"    --start-date= "2016-03-02 11:55:00"

/usr/bin/mysqlbinlog --no-defaults mysql-bin.000002 --stop-date= "2016-03-02 12:00:00"|mysql -uroot -p

  

本文参考地址:https://www.cnblogs.com/it-cen/p/5234345.html

mysql数据库安全性配置——日志记录的更多相关文章

  1. 【未完成】mysql数据库安全性配置——用户授权

    方式一:从服务设置授权 一:用户授权——从服务设置授权 (1)准备测试环境——不同服务器用户 首先,查看数据库连接当前用户情况,当前连接的只有root用户. select user,host,pass ...

  2. Centos6.4下Yum命令安装Mysql数据库及配置

    如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了 如果要开发web项目,我们当然可以安装一个 ...

  3. (转)Mysql数据库之Binlog日志使用总结

    使用mysqlbinlog提取二进制日志 原文:http://blog.csdn.net/leshami/article/details/41962243 MySQL binlog日志记录了MySQL ...

  4. [转帖]mysql数据库主从配置

    mysql数据库主从配置 https://www.toutiao.com/i6680489302947791371/ 多做实验 其实挺简单的 很多东西 要提高自信 去折腾. 架构与我 2019-04- ...

  5. 在Eclipse中使用JDBC访问MySQL数据库的配置方法

    在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据 ...

  6. mysql 开启慢查询 如何打开mysql的慢查询日志记录

    mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢,接下来将详细为您介绍 原文出自:http://www.jbxue ...

  7. jmeter中通过jdbc方式连接mysql数据库的配置参考

    jmeter中通过jdbc方式连接mysql数据库的配置参考: Database URL=jdbc:mysql://ip:port/dbname?useUnicode=true&allowMu ...

  8. mac安装mysql数据库及配置环境变量

    mac安装mysql数据库及配置环境变量 mac安装mysql数据库及配置环境变量 原文文链接:https://blog.csdn.net/qq_36004521/article/details/80 ...

  9. Mysql数据库之Binlog日志使用总结

    binlog二进制日志对于mysql数据库的重要性有多大,在此就不多说了.下面根据本人的日常操作经历,并结合网上参考资料,对binlog日志使用做一梳理: 一.binlog日志介绍1)什么是binlo ...

随机推荐

  1. HashMap原理。图文并茂式解读。这些注意点你一定还不了解

    目录 概述 属性详解 table entrySet size modCount threshold.loadFactor 源码知识点必备 getGenericInterfaces和getInterfa ...

  2. Js 组合键

    同时按Ctrl+Enter或Alt+s 先上html代码 <style type="text/css"> #box{width: 500px; height: 500p ...

  3. 关于web.xml配置

    整理自网上: web应用是一种可以通过Web访问的应用程序.在J2EE领域下,web应用就是遵守基于JAVA技术的一系列标准的应用程序. 最简单的web应用什么样? 2个文件夹.1个xml文件就能成为 ...

  4. selenium爬虫

    Web自动化测试工具,可运行在浏览器,根据指令操作浏览器,只是工具,必须与第三方浏览器结合使用,相比于之前学的爬虫只是慢了一点而已.而且这种方法爬取的东西不用在意时候ajax动态加载等反爬机制.因此找 ...

  5. ASP.NET Core 2.2 : 二十. Action的多数据返回格式处理机制

    上一章讲了系统如何将客户端提交的请求数据格式化处理成我们想要的格式并绑定到对应的参数,本章讲一下它的“逆过程”,如何将请求结果按照客户端想要的格式返回去. 一.常见的返回类型 以系统模板默认生成的Ho ...

  6. Django+Nginx概念安装和使用–使用Django建立你的第一个网站

    一 前记 最近在使用Django倒腾属于自己的网站,由于以前没有接触过多少这类信息,所以,很多东西都是从零开始学习的.在参考网上的资料时候,发现很多对这方面记录的,很多人都写的不是很清楚,也许我这个新 ...

  7. java中多线程执行时,为何调用的是start()方法而不是run()方法

    Thead类中start()方法和run()方法的区别 1,start()用来启动一个线程,当调用start()方法时,系统才会开启一个线程,通过Thead类中start()方法来启动的线程处于就绪状 ...

  8. Django中自定义模型管理器(Manager)及方法

    1.自定义管理器(Manager) 在语句Book.objects.all()中,objects是一个特殊的属性,通过它来查询数据库,它就是模型的一个Manager.每个Django模型至少有一个ma ...

  9. validator 自动化校验

    温馨提示 请收藏再看.此文篇幅太长,你短时间看不完:此文干货太多,错过太可惜. 示例代码可以关注逸飞兮(公众号)回复jy获取. 收获 讲解详细:能让你掌握使用 hibernate-validator ...

  10. EF指定更新字段

    使用EF做更新时,若没有进行跟踪会默认全字段更新,那怎么做到只更新我们想要更新的字段呢? /// <summary> /// 修改指定属性的单条数据 /// </summary> ...