`
骑猪逛街666
  • 浏览: 141762 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

如何通过 MySQL 的二进制日志恢复数据库数据

阅读更多

摘要: 系统环境 操作系统:CentOS 6.5 X64  (虚拟机); Web 服务:PHP+MySQL+apache; 网站:为方便,直接在本地用蝉知系统搭建一个演示站点; 操作步骤 1、开启 binlog 功能及基本操作 要使用 MySQL 的 binlog 日志功能,首先要在 MySQL 的配置文件中开启该功能,操作很简单。

系统环境

  • 操作系统:CentOS 6.5 X64  (虚拟机);
  • Web 服务:PHP+MySQL+apache;
  • 网站:为方便,直接在本地用蝉知系统搭建一个演示站点;

操作步骤

1、开启 binlog 功能及基本操作

要使用 MySQL 的 binlog 日志功能,首先要在 MySQL 的配置文件中开启该功能,操作很简单。找到 MySQL 的配置文件,在文件中添加一行 log_bin = mysql-bin 即可。其实在我安装的各种 MySQL 环境中,该功能通常都是默认开启的。

开启 binlog 功能后,在 MySQL 的数据库目录下就会有诸如 mysql-bin.000001mysql-bin.000002等文件,这就是 MySQL 的二进制日志文件。每当 MySQL 启动或手动刷新日志后都会新建一个二进制日志文件。

首先我们 MySQL 命令行中,用 show master logs 命令查看已有的 binlog 文件。

2、往站点添加数据

在网站后台文章模块里,我添加了几条测试数据。

3、刷新 binlog 日志

此前 MySQL 的 binlog 文件为 mysql-bin.000001,并且在网站后台往数据库中添加了三篇文章。现在我们刷新 binlog 日志,会生成新的 mysql-bin.000002 文件,如下:


  1. flush logs;
  2. show master logs;

4、删除数据

这里我把刚才添加的三篇文章都删除掉。

5、binlog 日志内容解析

MySQL 的二进制日志文件记录的 MySQL 的操作,比如刚才的删除操作,我们来看下日志文件的具体内容。

使用 MySQL 的 mysqlbinlog 命令:


  1. mysqlbinlog /data/mysql/mysql-bin.000002

注意:因为我本地 mysqlbinlog 无法识别 binlog 配置中的 default-character-set=utf8,所以这里我在命令中加上了 –no-defaults才起作用,大家引以为鉴。

下面是日志内容部分截图:

6、恢复指定数据

在通过 MySQL 的 binlog 日志恢复数据时,我们可以指定恢复到具体时间点,这有点像服务器快照管理。所以我们现在要恢复刚才删除的那篇文章,可以从删除之前找一个时间点,并恢复到那个时间点即可。

有关 mysqlbinlog 命令的使用方法,我们可以通过 mysqlbinlog 的帮助命令进行查看,如下:


  1. mysqlbinlog no-defaults help

如帮助文档所示,可以通过指定时间或指定位置来恢复数据,这里我以指定时间为例给大家演示。

我们来查看下日志文件 mysql-bin.000001,如下:


  1. mysqlbinlog -no--defaults /data/mysql/mysql-bin.000001

通过前面操作步骤我们知道,在删除数据之前,我们生成了 mysql-bin.000002 日志文件,所以我们只要恢复到这个时间点即可,上图中我已找到了这个时间。

命令如下:


  1. mysqlbinlog no-defaults stop-datetime=’2017-04-11 09:48:48’/data/mysql/mysql-bin.000001 |mysql uroot p123456

这时我们在看后台,发现刚才删除的三篇文章都已恢复回来了,从而到达我们期望的目的。

总结

本文和大家分享了如何通过 MySQL 的二进制日志文件恢复数据。但还是要提醒大家,在平时要做好网站数据备份,现在的一些主流 CMS 建站系统都会内置数据库备份功能,比如这里我用的蝉知系统,数据是网站的命脉,做好数据备份以避免后期不必要的麻烦或损失。

原文发布时间为:2017-04-17

本文来自云栖社区合作伙伴“Linux中国”

原文链接

分享到:
评论

相关推荐

    mysql-binlog二进制日志恢复

    MySQL 二进制日志恢复 MySQL 的二进制日志(binlog)是 MySQL server 的一个重要组件,记录...MySQL 二进制日志恢复是指从二进制日志中恢复数据的过程。使用 mysqlbinlog 工具可以轻松地从二进制日志文件中恢复数据。

    MySQL二进制日志查看工具

    MySQL二进制日志是数据库管理系统中用于记录所有更改数据的事件序列的一种机制,它对于数据库的备份、恢复以及故障排查至关重要。二进制日志查看工具则为开发者和DBA提供了一种方便的方式来分析、理解和操作这些日志...

    mysql二进制日志文件恢复数据库

     mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句。如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所做的操作,再和数据库备份配合...

    数据库MySQL二进制恢复

    通过对MySQL二进制日志的详细介绍,我们可以了解到它在数据恢复中的重要作用。通过合理的配置和管理,二进制日志不仅可以帮助我们快速恢复数据,还可以为数据审计提供重要的依据。同时,在实际应用过程中需要注意...

    详解如何通过Mysql的二进制日志恢复数据库数据

    下面将详细介绍如何通过MySQL的二进制日志来恢复数据库数据。 首先,要启用二进制日志功能,需要在MySQL的配置文件`my.cnf`或`my.ini`中添加`log_bin = mysql-bin`这一行。这将指示MySQL在数据库目录下创建名为`...

    mysql重做2进制日志.doc

    MySQL的二进制日志(Binary Log)是数据库系统中用于记录所有更改数据的SQL语句的一种机制,它对于数据恢复、主从复制等场景至关重要。重做二进制日志,即根据二进制日志中的内容重新执行SQL操作,以达到数据恢复的...

    基于Python实现用于解析和转换 MySQL 二进制日志(binlog)的工具源码

    MySQL二进制日志(Binary Log,简称binlog)是MySQL数据库系统中记录所有更改数据库数据的事件序列的重要工具,主要用于数据恢复、主从复制等场景。本篇将深入探讨如何利用Python语言来解析和转换MySQL的binlog,...

    mysqlbinlog二进制日志资料.pdf

    MySQL的二进制日志(Binary Log)是数据库系统中用于记录所有更改数据的SQL语句的重要工具,它对于数据库的备份、恢复以及故障排查至关重要。`mysqlbinlog`是MySQL提供的一款命令行实用程序,专门用于处理和解析二...

    mysql 二进制转换工具

    MySQL二进制转换工具主要涉及的是数据库管理和网络安全方面的技术,特别是与数据编码、文件传输以及权限提升相关的操作。在MySQL中,二进制格式通常用于存储和处理原始数据,如图像、音频或自定义文件,因为这些数据...

    从MySQL ROW二进制日志还原更新。Undelete-Mysql.zip

    MySQL的ROW格式二进制...在实际应用中,理解MySQL的ROW格式二进制日志以及如何使用Python解析和恢复数据是一项关键技能。通过掌握这些知识,数据库管理员和开发者能够在面临数据丢失时快速、准确地执行数据恢复操作。

    MySQL日志和数据恢复

    二进制日志记录了所有改变数据库状态的非临时性事件,包括数据修改和结构修改,它是实现数据恢复和复制的基础。二进制日志文件名通常以`binlog.`开头,后跟序列号。启用二进制日志需要在MySQL配置文件中设置`log-...

    mysql 二进制安装包

    MySQL二进制安装包是一种非源码编译的安装方式,它通常包含了预编译的二进制可执行文件,适合快速部署和配置MySQL数据库服务器。在Linux环境下,这种安装方式尤其常见,因为Linux发行版之间的库差异可能导致源码编译...

    mysql根据日志恢复数据详细步骤

    本文将详细介绍如何利用MySQL的二进制日志(Binlog)来恢复丢失的数据,并通过具体案例进行说明。 #### 二、基础知识介绍 1. **二进制日志(Binlog)** - **概念**:二进制日志是MySQL的一种日志类型,它记录了...

    MySQL二进制日志:数据恢复的瑞士军刀

    MySQL是一个流行的开源关系型数据库管理系统(RDBMS),广泛用于Web应用程序的后端数据存储。它基于结构化查询语言(SQL)来管理数据,并且是LAMP(Linux, Apache, MySQL, PHP/Python/Perl)技术栈的一部分,这个...

    Go-GolangMySql二进制日志复制侦听器

    总结起来,“Go-Golang MySQL二进制日志复制侦听器”是一个强大的工具,它利用Golang的特性实现了对MySQL二进制日志的高效监听和处理。无论你是数据库管理员还是软件开发者,理解并掌握myreplication将有助于提升你...

    mysqlbinlog二进制日志.pdf

    MySQL二进制日志文件是MySQL数据库中的一种日志文件,用于记录数据库的所有操作,包括增、删、改、查等操作。二进制日志文件的主要作用是用于数据库的备份和恢复。 mysqlbinlog是MySQL提供的一个工具,用于将二进制...

    mysql数据库关闭二进制日志配置说明

    mysql数据库关闭二进制日志配置说明

    MySQL二进制日志(binlog)解析工具

    MySQL二进制日志(binlog)是数据库系统中一种重要的功能,用于记录所有改变数据库状态的事务。这种日志格式是二进制的,它包含了一种持久化数据库更改的方式,这对于数据恢复、主从复制和数据分析具有关键作用。在...

Global site tag (gtag.js) - Google Analytics