数据库系列—MySQL 的二进制日志恢复数据库数据

小白带你学习linux的mysql数据库备份(三十) 数据库备份是指将数据库中的数据、表格、视图、存储过程、触发器等信息备份到另一个地方,以数据库丢失或损坏时进行恢复。数据库备份是数据库管理中必不可少的一项工作,通过备份可以保护数据库中的数据和业务。 阅读详情

MySQL Binary Log也就是常说的bin-log,,是mysql执行改动产生的二进制日志文件,其主要作用有两个:
* 数据恢复
* 主从数据库。用于slave端执行增删改,保持与master同步。

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

要使用 MySQL 的 binlog 日志功能,首先要在 MySQL 的配置文件中开启该功能,操作很简单。找到 MySQL 的配置文件,在文件中添加一行 log_bin = mysql-bin 。

(配置文件为mysql安装目录\MySQL Server 8.0下的my.ini,添加一句log_bin = mysql_bin即可)

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录# 切记此处一定要用双斜杠
basedir=D:\\DevPackTool\\mysql-8.0.22-winx64 
# 设置mysql数据库的数据的存放目录
datadir=D:\\DevPackTool\\mysql-8.0.22-winx64\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=UTF8MB4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
#开启binlog
log-bin=mysql-bin
server-id=1  
[mysql]
# 设置mysql客户端默认字符集
default-character-set=UTF8MB4

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=UTF8MB4

方便大家统一环境。提供一个自己的配置。

其实在我安装的各种 MySQL 环境中,该功能通常都是默认开启的。

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

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

 

2、往数据库添加数据

 

3、刷新 binlog 日志

此前 MySQL 的 binlog 文件为

+---------------+-----------+-----------+
| Log_name      | File_size | Encrypted |
+---------------+-----------+-----------+
| binlog.000001 |       179 | No        |
| binlog.000002 |       952 | No        |
| binlog.000003 |       179 | No        |
| binlog.000004 |       179 | No        |
| binlog.000005 |       179 | No        |
| binlog.000006 |       179 | No        |
| binlog.000007 |   2172794 | No        |
| binlog.000008 |    433836 | No        |
| binlog.000009 |      1651 | No        |
+---------------+-----------+-----------+

现在往数据库中添加了三条数据。现在我们刷新 binlog 日志,会生成新的 mysql-bin.000010 文件(有的默认是binlog)我的是mysql8,如下:

flush logs;
show master logs;

4、删除数据

这里我把刚才添加的三条数据都删除掉。

先添加

再删除 

 

5、binlog 日志内容解析

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

使用 MySQL 的 mysqlbinlog 命令:

mysqlbinlog /data/mysql/mysql-bin.000010

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

 

6、恢复指定数据

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

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

mysqlbinlog –no-defaults –help

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

我们来查看下日志文件 mysql-bin.000009,(就是当前binlog日志之前的日志,当前日志是000010)如下:

命令如下:

>mysqlbinlog --no-defaults --stop-datetime="2020-12-08 16:03:09" binlog.000009 |mysql -uroot -p

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

总结

如何通过 MySQL 的二进制日志文件恢复数据,在平时要做好网站数据备份,数据是网站的命脉,做好数据备份以避免后期不必要的麻烦或损失。

 最后介绍几个bin_log的操作:
   1.查看最后一个bin日志文件是那个,现在位置。

show master status;

  2.启用新的日志文件,一般备份完数据库后执行。

flush logs;

3.清空现有的所用bin-log 

reset master;

 

Mysql,使用Mysqlbinlog,解析binlog日志 `Mysql`,使用`Mysqlbinlog` 解析 `binlog`日志 前言:很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 `SQL`,根据 `SQL` 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。...... 阅读详情

相关推荐

Mysql-binlog的查看

binlog日志包括两类文件:二进制日志索引文件(文件名后缀为.index)用于记录所有有效的的二进制文件二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML语句事件binlog是一个二进制文件集合,每个binlog文件以一个4字节的魔数开头,接着是一组Events:魔数:0xfe62696e对应的是0xfebin;Event:每个Event包含header和data两个部分;

S_ZaiJiangHu的博客 1万+

MySQL使用binlog恢复数据

MySQL的二进制日志(Binlog)是一种事务日志,用于记录对数据库的更改操作。复制: 从库通过拉取主库的binlog实现主从数据一致恢复: 通过重放binlog恢复数据丢失或误操作情况MySQL的Binlog是数据库的重要组成部分,它记录了数据库的更改操作,并为数据复制和数据恢复提供了有力支持。通过了解Binlog的原理和使用技巧,我们可以更好地利用这一特性,保障数据库的稳健运行,并在必要时实现高级的数据恢复。然而,进行数据恢复时,请务必谨慎操作,以免造成不可逆的损失。

安静的技术宅 5567

数据守护神:深入解析MySQL二进制日志与数据恢复的奥秘

MySQL的二进制日志是一个非常重要的功能,它记录了服务器上执行的所有更改数据库结构或内容的操作语句,包括但不限于INSERT、UPDATE、DELETE等SQL命令。每条记录被称为事件(Event),这些事件按照时间顺序存储,并且每个事件都包含了足够的信息以供后续重放(Replay)。启用二进制日志不仅可以帮助我们追踪数据库的历史变化,还能用于实现主从复制、点故障恢复以及审计跟踪等功能。此外,在某些情况下,通过分析二进制日志中的查询模式,还可以为性能优化提供有价值的线索。

墨夶的博客 1701

MySQL之SHOW语法(转)

SHOW BINARY LOGS列出服务器上的二进制日志文件 SHOW{BINARY|MASTER}LOGS SHOW MASTER LOGS相当于SHOW BINARY LOGS。具有SUPER或 REPLICATION CLIENT特权的用户可以执行此语句。 SHOWBINLOGEVENTS[IN'log_name'][FROMpos][LIMIT[offset,]row_count] SHOW BINLOG EVEN...

weixin_41869893的博客 472

SystemC实战:用C++搞芯片建模的5个典型场景(含代码示例)

本文通过五个典型实战场景,详细介绍了如何使用SystemC这一基于C++的硬件建模库进行芯片设计与系统级建模。内容涵盖从基础并发模块构建、事务级总线建模、跨时钟域验证,到与ModelSim协同仿真及多核系统性能探索,并提供了完整的代码示例,帮助软件工程师利用熟悉的C++工具链高效参与硬件架构设计与验证。

weixin_29191761的博客 314

小样本学习概述

目录 前言 小样本学习存在的意义? 什么是小样本学习? 小样本学习的方法有哪些? 结语 前言 小样本学习(Few-Shot Learning)是近几年兴起的一个研究领域,小样本学习旨在解决在数据有限的机器学习任务。 小样本学习存在的意义? 近些年,以深度卷积神经网络为代表的深度学习方法在各类机器学习任务上取得了优异的成绩——很多任务上已经超越了人类表现。狂欢背后,危机四伏。因为这些深度学习方法work的关键之一是海量标注数据的支持。 但是在工业界,很多时候难以获得海量的训练数据,更.

DwD-的博客 3万+

Mysql的Bin log数据恢复:不小心删除数据库

Mysql的Bin log数据恢复:不小心删除数据库 前言:因为不小心删除了测试机器上Mysql的一整个数据库Schema,因为是测试机所以没有做备份,现在通过MySQL的Bin log方式恢复到删除以前的数据库。 当然做Bin log的数据恢复前提是已经打开Bin log的功能,如果又没做数据备份,又没打开Bin log日志,那你就可能需要考虑快照等其它方式从系统的角度去恢复。 ...

"其实我是一演员"的专栏 6777

SRA数据库

简介 序列读取存档(sequence Read Archive,SRA)数据是可通过多个云提供商和NCBI服务器获得的,它是最大的可公开获得的高通量测序数据存储库。 SRA接受来自生活各个部门以及宏基因组学和环境调查的数据。 SRA存储原始测序数据和比对信息,以提高可重复性并通过数据分析促进新发现。 NCBI网站储存二代测序原始数据的数据库 SRA官网 从Entrez搜索结果中下载SRA序列 例如查找SRA Entrez中BALB / c小鼠淋巴结组织的RNA-Seq记录 获取搜索结果 SRA se

qq_44520665的博客 5906

MySQL二进制日志详解 | binlog存储、解析、日志恢复

将mysqlbinlog的输出作为mysql命令的输入,就能重放binlog中记录的修改,这对于MySQL的即时点数据恢复时很有价值的。定义了单个文件的大小限制,如果二进制日志写入的内容大小超出给定值,日志就会发生滚动(关闭当前文件,重新打开一个新的日志文件)。⑦清空现有的二进制日志文件:该方法可以删除列于索引文件中的所有二进制日志,把二进制日志索引文件重新设置为空,并创建一个以.000001为后缀新的二进制日制文件,并删除过去生成的全部二进制日志。也就是说,这个文件是mysqld进程内部专用的。

weixin_43816711的博客 5185

保姆级教程:在Ubuntu 22.04上用Conda搞定nuPlan数据集环境(Python 3.9 + PyTorch)

本文提供了一份详细的Ubuntu 22.04环境下使用Conda配置nuPlan自动驾驶数据集的保姆级教程,涵盖Python 3.9安装、Conda环境管理、PyTorch配置及数据集可视化验证等关键步骤,帮助开发者高效搭建开发环境。

weixin_29061997的博客 253

CIMPro孪大师,支持 3DGS 高斯泼溅的一站式零代码数字孪生平台

高斯泼溅导入数字孪生开发引擎

2501_90821319的博客 1108

【MySQL数据库备份与恢复1】二进制日志,mysqlbinlog

二进制日志(Binary Log,简称 binlog)是 MySQL 数据库中最为关键的日志之一。它以离散的“事件”形式,精准记录所有对数据库结构或数据进行修改的操作,包括数据定义语言 (DDL)语句(例如CREATEALTERDROP)和数据操作语言 (DML)语句(例如INSERTUPDATEDELETE典型的记录内容包括但不限于表的创建、修改以及表数据的变更历史。需要明确的是,二进制日志通常不会记录不修改数据的操作,如SELECT查询或SHOW命令。除了记录操作本身,二进制日志还包含了重要的元数据。

2301_80224556的博客 1131

【雕爷学编程】Arduino动手做(75)---TTL转RS-485模块之二线制可以实现真正的多点双向通信

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验七十五:TTL转RS-485模块 MAX485 RS485模块 MAX485 是一个8.

雕爷学编程 1万+

MySQL数据库备份与恢复

MySQL 数据库的备份与恢复是数据库管理的重要部分,它可以帮助我们保护数据不受硬件故障、数据损坏、人为错误等因素的影响

qq_52143611的博客 1602

【72】【OpenCV C++ & C#】 将cv::Mat 图像转换成imgINFO 传给c#在winform上显示,OpenCV C++如何将处理后的图像传给C#呢? 如何获取图像信息呢?

本文介绍了通过OpenCV C++处理图像后传递给C#的方法。首先定义了一个结构体imgINFO存储图像信息(数据指针、宽高、通道数等),然后通过getImgInfo函数将cv::Mat转换为该结构体。文章特别指出当图像宽度不能被4整除时可能出现失真问题,并给出了两种解决方案:调整输入图像或创建新的对齐图像。此外还解释了img.step和img.cols*img.elemSize()的关系,说明它们在大多数情况下是相等的。最后提到需要通过DLL将结构体传递给C#(具体方法参见其他文章)。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 697

AutoSAR实验视频讲解:相关资料下载

AutoSAR实验视频讲解:闪烁一颗LED实验【相关资料下载】 总目录 为了方便大家自己的实验顺利进行,这里我们准备了一些实验中可能用到的资料供大家使用 介绍 这里主要是三个文件: MyApp_Core.0是我们的用户代码,在工程集成那集将会讲解 McalConfig.arxml就是我们的Mcal导出文件,用于导入到DaVinci中生成代码 CAN.dbc文件是我们的通信矩阵文件 以上几个文件都是简单的配置,不具有实际项目的实用性,大家仅供参考 // 顺便吐槽一句:百度网盘的吃相真的难看 下载连接

雪云飞星的博客 6668

Mysql数据库(六)——mysql日志管理、备份与恢复

Mysql数据库(六)——mysql日志管理、备份与恢复一、mysql常用日志1、概述①、错误日志②、二进制日志③、中继日志④、慢查询日志2、数据库中查询日志状态①、查看二进制日志开启状态②、查看慢查询日志功能是否开启③、查看慢查询时间设置④、在数据库中设置开启慢查询的办法(临时)二、备份1、概述2、备份的重要性3、备份类型①、从物理与逻辑的角度分类(逻辑备份、物理备份)②、从数据库的备份策略角度分类(完全备份、差异备份、增量备份)4、备份方法①、物理冷备份②、专用备份工具 mysqldump 或 mysq

想成功,靠自己 7206

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

MySQL数据库的日志管理以及备份和恢复

当备份文件中只包含表的备份,而不包含创建的库的语句时,执行导入操作时必须指定库名,且目标库必须存在。MySQL没有提供直接的增量备份方法 可通过MySQL提供的二进制日志间接实现增量备份。数据库在某一时间点可能既有错误的操作也有正确的操作 可以基于精准的位置跳过错误的操作。从数据库的备份策略角度,备份可分为完全备份、差异备份、 增量备份。对数据库操作系统的物理文件(如数据文件、 日志文件等)的备份。从物理与逻辑的角度,备份可分为物物理备份与逻辑备份。保存的是备份完成时刻的数据库。

gfbcdgbb的博客 1553

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Mysql数据库:日志管理、备份与恢复

本文主要介绍了mysql的日志管理、备份和恢复,详细阐释了mysql数据库的完全备份中的物理冷备份和逻辑热备份方法,以及增量备份中的一般备份、基于位置备份、基于时间备份等方法,希望对你有帮助!

十七拾的博客 2890

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

一、二进制日志简介MySQL有不同类型的日志,其中二进制文件记录了所有对数据库的修改,如果数据库因为操作不当或其他原因丢失了数据,可以通过二进制文件恢复。在my.ini文件中设置了log-bin,重新启动MySQL后就开启了二进制日志。数据库每次重新启动(或执行flush logs命令)后,都会生成一个新的二进制日志,如在在my.ini文件中设置了log-bin=F:\mysqllog\logbi...

weixin_32287563的博客 1046

mysql数据库备份与恢复 二进制日志(Binlog)备份

MySQL 的二进制日志记录了所有修改数据的 SQL 语句(如INSERTUPDATEDELETE)以及事务的提交信息。数据恢复:结合完整备份和 Binlog,可以将数据库恢复到指定时间点。复制:主从复制依赖 Binlog 将主库的更改同步到从库。审计:分析 Binlog,可以重现数据库的更改操作。MySQL Binlog 是数据库备份与恢复的重要工具,它提供了增量备份的能力,可以将数据库恢复到任意时间点。通过结合完整备份和 Binlog,我们可以构建一个强大且可靠的备份与恢复机制。

Flying_Fish_roe的博客 1918

利用MySQL 二进制日志恢复数据库

今天无意当中误操作了自己机器上数据库中的一个表。本来也没什么大事。但是后来一想万一遇到这种情况我该什么办?打开了手册看了一下,如果在启动MySQL时启用了bin日志,则可以利用日志来恢复。 MySQL的二进制日志记录了对数据库进行修改的所有SQL语句。当然在恢复之前你需要事先知道当前的MySQL的二进制日志的位置和名称,默认情况下,MySQL会将这个文件直接放在数据目录下。但是你可以在

magento网站建设,magento模板开发,magento支付模块 2290

【MySQL数据库】MySQL日志管理与备份恢复

xtrabackup:用于热备份InnoDB和XtraDB表数据,不支持其他类型的表或数据表结构。:是xtrabackup的Perl封装脚本,支持备份MyISAM表。备份类型描述物理备份直接对数据库的物理文件(数据文件、日志文件等)进行备份逻辑备份对数据库对象(库、表)的数据以SQL语句的形式导出进行备份。

Karoku的博客 1540

mysql使用二进制日志恢复数据

使用二进制日志恢复mysql数据,恢复到某一个pos,或者恢复到某一个时间点,或者恢复到某一个二进制文件。本文说明了根据二进制恢复数据的详细操作步骤。

3509

详解mysql的二进制日志恢复数据库

今天是蛋疼的一天,一大早就把客户的服务器

Ze_wait的专栏 1299

MySQL 数据库通过日志恢复

<br />要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名。一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径。如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出。启用二进制日志的选项为-- log-bin。要想确定当前的二进制日志文件的文件名,输入下面的MySQL语句: <br />SHOW BINLOG EVENTS /G <br />你还可以从命令行输入下面的内容: <br />mysql --user=root -pmy_pw

似水流年 -- 韩欣的博客 2万+
上一篇: 任务调度处理系列之 Spring源码分析-【SchedulingConfigurer实现原理】
下一篇: 数据库系列——Mysql主从复制作用和工作原理详解
Coder_Boy_
博客等级 码龄10年 2804粉丝 819原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder_Boy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值