mysqlbinlog命令使用

2023-11-08

参考:
https://www.cnblogs.com/zouhong/p/14540380.html
https://www.iteye.com/blog/wx1568934009-2469938

获取二进制日志列表show binary logs

show binary logs

在这里插入图片描述

查看具体日志文件mysqlbinlog mysql-bin.000025

进入服务器

#存放binlog的地方,具体可看配置文件
cd /var/lib/mysql
mysqlbinlog mysql-bin.000025

日志全文

[root@129 home]# cd /var/lib/mysql
[root@129 mysql]# mysqlbinlog mysql-bin.000025
# The proper term is pseudo_replica_mode, but we use this compatibility alias
# to make the statement usable on server versions 8.0.24 and older.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#220407 20:56:18 server id 129  end_log_pos 126 CRC32 0xf0043ca2        Start: binlog v 4, server v 8.0.28 created 220407 20:56:18 at startup
ROLLBACK/*!*/;
BINLOG '
ct9OYg+BAAAAegAAAH4AAAAAAAQAOC4wLjI4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABy305iEwANAAgAAAAABAAEAAAAYgAEGggAAAAICAgCAAAACgoKKioAEjQA
CigAAaI8BPA=
'/*!*/;
# at 126
#220407 20:56:18 server id 129  end_log_pos 157 CRC32 0x8b107e3b        Previous-GTIDs
# [empty]
# at 157
#220407 21:01:23 server id 129  end_log_pos 180 CRC32 0x65c055ca        Stop
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

获取指定数据库的日志-d

#先把日志文件拿到备份的目录
cd /home/mysqlbak
cp /var/lib/mysql/mysql-bin.* ./
#获取指定库的日志文件 -d 指定数据库 -r 指定输出在哪个文件
mysqlbinlog -d clsn  mysql-bin.000026 -r clsn.sql

在这里插入图片描述

禁止恢复过程产生日志 -D

在使用二进制日志文件进行数据库恢复时,该过程中也会产生日志文件,就会进入一个循环状态,继续恢复该过程中的数据。因此,当使用mysqlbinlog命令时,要禁用二进制日志,请使用下面所示的-D选项:

mysqlbinlog -d clsn -D  mysql-bin.000026 -r clsn2.sql

在这里插入图片描述

对比有无-D文件发现如下,左侧是不加-D
文件开始

/*!32316 SET @OLD_SQL_LOG_BIN=@@SQL_LOG_BIN, SQL_LOG_BIN=0*/;

在这里插入图片描述
文件结尾

/*!32316 SET SQL_LOG_BIN=@OLD_SQL_LOG_BIN*/;

在这里插入图片描述
尝试恢复

mysql -uroot -p'123456' < clsn2.sql

观察mysql-bin.000026文件发现文件大小和修改时间都未变化,代表恢复不会产生binlog日志。

控制输出base64编码的BINLOG语句 --base64-output

使用base64-output选项,可以控制输出语句何时是输出base64编码的BINLOG语句。
以下是输出设置的可能值:

  • never
  • unspec
  • decode-rows
  • auto(默认)

never:当指定如下所示的never时,它将不在输出中显示base64编码的BINLOG语句。

mysqlbinlog -d clsn --base64-output=never  mysql-bin.000026 -r clsn3.sql

下面的语句不输出

BINLOG '
peBOYg+BAAAAegAAAH4AAAABAAQAOC4wLjI4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACl4E5iEwANAAgAAAAABAAEAAAAYgAEGggAAAAICAgCAAAACgoKKioAEjQA
CigAAcVeR9E=

对比有无base64编码的binlog语句
在这里插入图片描述
unspec:当指定unspec选项时,只要有可能,它将只显示BINLOG项。因此,只有在专门调试一些问题时才使用它。

mysqlbinlog -d clsn --base64-output=unspec  mysql-bin.000026 -r clsn4.sql

发现生成的文件和不加参数生成的文件一模一样这里也不是很懂,后续在推敲。

decode-rows:这个选项将把基于行的事件解码成一个SQL语句,特别是当指定-verbose选项时,如下所示。

mysqlbinlog -d clsn --base64-output=decode-rows --verbose mysql-bin.000026 -r clsn5.sql

发现生成的文件和不加参数生成的文件一模一样这里也不是很懂,后续在推敲。

auto这里不解释。

mysqlbinlog输出调试信息

[root@129 mysqlbak]# mysql -V
mysql  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)

很遗憾,我安装的是非调试版本此功能无法尝试。
在这里插入图片描述

跳过前N个条目 -o

mysqlbinlog -d clsn -o 500 mysql-bin.000026 -r clsn6.sql

打开clsn6.sql文件对比之前的完整文件,看到明显少了很多
在这里插入图片描述

保存输出到文件 -r

不介绍上面用到很多

从一个特定位置提取后续条目 -j

mysqlbinlog -j 10644 mysql-bin.000026 -r clsn7.sql

在这里插入图片描述

提取指定位置之前的条 --stop-position

有stop就有start,这里不举例

mysqlbinlog --stop-position 157  mysql-bin.000026 -r clsn8.sql

在输出中只显示语句 -s

默认情况下,正如在前面的示例输出中看到的一样,除了SQL语句之外,在mysqlbinlog输出中还会有一些附加信息。如果只想查看常规的SQL语句,而不需要其他内容,那么可以使用 -s 选项,如下所示。

[root@129 mysqlbak]# mysqlbinlog -s mysql-bin.000026 -r clsn9.sql
WARNING: --short-form is deprecated and will be removed in a future version

查看特定开始时间的条目 --start-datetime --stop-datetime

mysqlbinlog --start-datetime='2022-04-07 21:27:47' --stop-datetime='2022-04-08 18:17:21' mysql-bin.000026 -r clsn10.sql

从远程服务器获取二进制日志

  • -R 选项指示mysqlbinlog命令从远程服务器读取日志文件
  • -h 指定远程服务器的ip地址
  • -p 将提示输入密码,注意是mysql数据库密码不是linux服务器密码。默认使用“root”作为用户名。也可以使用 -u 选项指定用户名
  • -u 指定访问mysql的用户名,注意不是linux服务器的登录名
  • -r 输出到文件
mysqlbinlog -R -h 192.168.106.140 -u root -p'123456' mysql-bin.000026 -r bin.sql
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysqlbinlog命令使用 的相关文章

  • 如何在 MySql Workbench 中禁用 INVISIBLE 索引选项?

    我刚刚安装了MySqlWorkbench我发现了实施INVISIBLE index所描述的here https dev mysql com doc refman 8 0 en invisible indexes html 我想禁用此功能 因
  • 带参数的 MySQL 脚本

    我想创建一个部署脚本 以某种方式模拟 Oracle 部署脚本 其中使用 param 您可以使用之前声明的参数 我需要为不同数据库上的不同用户自动调用此脚本 例如我的脚本应该是 USE param DROP TABLE IF EXISTS T
  • 使用单个查询和每用户密码盐进行用户登录

    我决定使用存储在数据库中的每用户盐来实现用户登录 盐作为密码的前缀 该密码使用 SHA 进行哈希处理并存储在数据库中 过去 当我不使用盐时 我会使用典型的方法 使用用户输入的用户名和密码来计算查询返回的行数 然而 对于每个用户的盐 您需要先
  • 在 MySQL 表中存储用户密码的最佳 PHP 哈希方法?

    我已经阅读 Stack Overflow 问题大约 15 分钟了 每一个问题似乎都与我之前读到的问题相矛盾 Bcrypt SHA1 MD5 等 我目前对我的密码进行 MD5 但我想让我的数据库在发生泄露时更加安全 我知道这个问题已经被问了一
  • Mysql 连接到服务器:用户 root@localhost 的访问被拒绝

    edit9 是否有可能我只是缺少文件夹的一些权限 我真的非常非常感谢更多的建议 edit3 由于这篇文章没有得到足够的回复 而且这绝对是至关重要的 我尽快完成这件事 我重建了我的帖子以显示我认为到目前为止我已经扣除的内容 注意 通过许多不同
  • 规范“毒”方式真的值得吗? (3NF)

    我正处于数据库设计的早期阶段 所以还没有最终的结果 并且我正在为具有可选标签的线程使用 TOXI 3表设计 但我忍不住觉得加入是并不是真的必要 也许我只需要依赖我的简单标签列posts我可以在其中存储类似 varchar 的表
  • 我可以让 MySQL 数据库在插入语句后自动为列分配值吗?

    给定一个具有 ID pk 和 name 列的员工表 ID name 1 John 2 James 3 Tom Can I do INSERT INTO employee name VALUES Jack 并以某种方式让数据库自动分配下一个可
  • 获取jdbc中表依赖顺序

    我在 MySQL 数据库中有一组表 A B C D 依赖关系如下 B gt C gt A 和 D gt A 也就是说 A 有一个 PrimaryKey C 有一个外键指向 A 的主键 B 有一个外键指向 C 的主键 类似地 D 有一个外键指
  • 我应该保留远程数据库的本地副本吗?

    我正在开发一个应用程序 基本上允许人们创建 加入和管理其他人的群组 群组内的人也可以互相发送消息 我一直在想哪条路会更好 保留包含所有信息的远程数据库 包括发送给用户和从用户发送的消息 并让应用程序在每次需要信息时查询服务器 甚至是它以前见
  • 从本地 html/javascript 网站插入 mySQL 数据库

    我正在尝试做什么 我的程序的目的是插入数据local HTML JS网站变成online 非本地 mySQL数据库 到目前为止我尝试过的 我试图用来实现此目的的原始方法是让我的本地网站使用 javascript 通过在线发布数据PHP文件
  • 更新查询增量字段加上 1 codeigniter 函数 [重复]

    这个问题在这里已经有答案了 我想在 codeigniter 项目中将字段值增加到当前值加 1 所以 我做了一个功能 但它不起作用 我的职能是 function increse field by 1 table name fieldToInc
  • 使用mysql数据按高低价格排序

    这是我所拥有的以及我想做的 我的 MySql 数据库中有 12 个项目 4 个产品为 4 99 4 个产品为 3 99 4 个产品为 2 99 我意识到我可以像这样查询数据库 它会给我一个该价格的产品列表
  • 测验程序的 MySql 数据库设计

    我目前正在开发一个项目 主要是创建一个测验应用程序 它将能够进行包含 10 到 20 个问题的多项选择题或简答题的测验 它需要能够根据正确答案检查用户的答案 然后对用户的答案进行评分 稍后 我可能会实现一个后端功能来在线创建测验 但现在我将
  • 多个数据库连接

    我有三张桌子 categories content info and content The categories表包含类别的id及其 IDparent类别 The content info包含两列 entry id帖子的 ID 和cat
  • MyISAM 方言生成错误的 DDL

    我们使用 MyISAM 方言org hibernate dialect MySQLMyISAMDialect使用JPA2自动生成DDL文件3 6 9 FinalMySQL 5 5 数据库上的 hibernate 提供程序 The creat
  • 为什么不能将 MYSQL 函数传递到准备好的 PDO 语句中?

    在我看来 以下脚本应该有效 stmt db gt prepare UPDATE table SET status date modified stmt gt execute array 1 NOW 但经过时NOW 进入准备好的声明中 什么也
  • 错误代码:1822(当数据类型匹配且具有复合键时)

    得到一个 错误代码 1822 添加外键约束失败 丢失的 引用表中约束 subject ibfk 1 的索引 注册 当尝试创建subject桌子 问题是 错误并没有出现在上一张表上student 数据类型相同 并且定义了主键 两者都会出现此错
  • 从 datagridview 选定的行更新 mysql 数据库

    我有一个 datagridview 它在表单加载事件上加载 mysql 数据库表 t pi clients 并且我有另一个选项卡 其中包含 t pi client 相应列的文本框 它能够从 fullrowselect 模式获取数据到这些文本
  • 如何列出表中的所有列?

    对于各种流行的数据库系统 如何列出表中的所有列 对于 MySQL 请使用 DESCRIBE name of table 只要您使用 SQL Plus 或 Oracle 的 SQL Developer 这也适用于 Oracle
  • Java/Hibernate - 异常:内部连接池已达到其最大大小,当前没有可用的连接

    我第一次在大学项目中使用 Hibernate 而且我还是个新手 我想我遵循了我的教授和我阅读的一些教程给出的所有指示 但我不断收到标题中的异常 Exception in thread main org hibernate Hibernate

随机推荐

  • 字符串、字节串、十六进制之间转换

    temp ota sign tool 20200722 zip 字符串转字节串 temp1 temp encode utf 8 print temp1 字节串转十六进制 temp2 temp1 hex print temp2 十六进制转字节
  • Python 第三方模块 科学计算 Quantecon模块

    参见 https quantecon org quantecon py 一 简介 1 功能 quanrecon是1个用于计量经济学的高性能开源第3方Python模块 其中包含博弈论 马尔科夫链 优化 随机样本生成等工具 2 使用 1 安装
  • less background-image

    bg image url background image url url 2x png media webkit min device pixel ratio 3 min device pixel ratio 3 background i
  • Vue2国际化(i18n)

    一 安装 安装i18n插件 npm i vue i18n 二 配置 创建文件夹及文件 在src目录下创建lang文件夹 在lang文件夹下新建zh js和en js 分别存放中文和英文语言包 使用export default向外暴露 zh
  • Zotero学习

    看到几个很好的教程 帮助很大 做个备忘 B站 Zotero快速入门 链接 link Zotero基础操作 比Endnote更好用的文献管理软件 链接 link 知乎 Zotero SciHub 青柠学术 链接 link 搭建属于自己的文献数
  • Java API在HDFS上实现文件的上传、下载到本地、创建文件夹、删除文件和重命名文件

    前期准备 一 前期准备 1 Hadoop集群已配置完毕 2 linux系统安装jdk 3 在linux系统中安装并破解IntelliJ IDEA 二 通过JAVA API接口操纵HDFS 1 在IDEA中创建maven项目 2 设置配置文件
  • 大比拼:讯飞星火大模型将超越ChatGPT?

    5月6日 讯飞星火认知大模型成果发布会于合肥举办 会上 备受业界期待的 星火 认知大模型正式发布 讯飞AI学习机 讯飞听见 讯飞智能办公本 讯飞智慧驾舱 讯飞数字员工 四大行业中的五大成果同步演示 发布会全程进行实机展示 引发业界热烈反响
  • 查看Linux内核版本的命令

    方法一 命令 uname a 作用 查看系统内核版本号及系统名称 方法二 命令 cat proc version 作用 查看目录 proc 下version的信息 也可以得到当前系统的内核版本号及系统名称 补充说明 proc文件系统 它不是
  • wazhu架构搭建 小结

    基本的搭建步骤都在这个博客下 https www cnblogs com backlion p 10394369 html 下面写一些我再安装过程中遇到的问题 1 首先安装wazuh中的各个版本都需要一致 例如我安装的是 wazuh man
  • android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context

    问题描述 FATAL EXCEPTION main Process com wuchen juexiao mvvm PID 11732 android util AndroidRuntimeException Calling startAc
  • Linux基础服务11——LNMP架构

    文章目录 一 环境说明 二 安装nginx 三 安装mysql 四 安装php 五 配置nginx 六 配置php 七 验证 一 环境说明 主机 服务 192 168 161 129 nginx 192 168 161 131 mysql
  • Vagrant 扩大磁盘根目录(图文详解)

    Vagrant 扩大磁盘根目录 图文详解 实验环境 root centos72 cat etc redhat release CentOS Linux release 7 2 1511 Core root centos72 uname a
  • 【我的第一千篇文章】

    作为一名Java开发者 我很自豪地宣布 这里是我输出的第一千篇文章 在过去的六年里 我一直坚持每月输出优质内容 并将其分享给了全世界的读者们 这一千篇文章中 有很多关于Java编程的技巧 经验分享 优秀实践示例 案例分析等等 每篇文章都代表
  • 决策树分析例题经典案例_一级造价师考试——工程造价案例分析之2.3决策树分析法在方案评价中的应用...

    一级造价师考试 工程造价案例分析之2 3决策树分析法在方案评价中的应用 决策树分析方法一般会和资金时间价值综合起来进行考核 要会正确绘制决策树 根据资金时间价值计算各机会点的期望值 进行方案选择和决策 1 决策树的概念 决策树是以方框 和圆
  • Maven 命令

    输出依赖树 mvn dependency tree 输出依赖树到指定文件 mvn dependency tree gt tree txt 输出lib mvn dependency copy dependencies DoutputDirec
  • 如何将爬虫的数据添加到mysql数据库中

    以爬取糗事百科中24小时网页中第一列表页中所有文章的内容 作者 搞笑数 评论数为例 将爬取的四项内容存入到mysql数据库中 思路 要想存入到数据库中就需要用到数据库中的表 所以我们首先创建一个名叫 myblog 的数据库 然后在此数据库中
  • PHP 的Laravel 框架

    在windows下 搭建PHP的Laravel框架很简单 先把PHP的安装目录 加入到环境变量里 在命令行能访问到php v 就说明可以了 然后 这些是需求的环境 PHP gt 7 1 3 不用说了 OpenSSL PHP扩展 用compo
  • 51单片机编写60秒倒计时程序

    include
  • linux下mysql安装

    一 解压缩mysql 5 6 4 m7 tar zip 1 gt unzip mysql 5 6 4 m7 tar zip 会生成mysql 5 6 4 m7 tar gz的压缩文件 2 gt tar zxvf mysql 5 6 4 m7
  • mysqlbinlog命令使用

    参考 https www cnblogs com zouhong p 14540380 html https www iteye com blog wx1568934009 2469938 获取二进制日志列表show binary logs