使用mysqlbinlog报错

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 不知道怎么了,今天使用mysqlbinlog这个命令查看数据库的日志文件,出现了如下报错:[root@Darren1 logs]# mysqlbinlog -vv --base64-output=decode-rows mysql-bin.

不知道怎么了,今天使用mysqlbinlog这个命令查看数据库的日志文件,出现了如下报错:

[root@Darren1 logs]# mysqlbinlog -vv --base64-output=decode-rows mysql-bin.000006 
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#170415  1:28:13 server id 23306  end_log_pos 123       Start: binlog v 4, server v 5.7.16-log created 170415  1:28:13
# Warning: this binlog is either in use or was not closed properly.
ERROR: Error in Log_event::read_log_event(): 'Sanity check failed', data_len: 71, event_type: 35
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

通过查阅资料,有网友说可能是mysqlbinlog版本与数据库服务版本不匹配,然后当我使用全路径/usr/local/mysql/bin/mysqlbinlog查看日志文件时不会报错。

然后通过which命令查看mysqlbinlog这个命令位置时发现:

[root@Darren1 logs]# which mysqlbinlog
/usr/bin/mysqlbinlog

这个位置的mysqlbinlog确实不是我安装的脚本位置,/usr/local/mysql/bin/目录才是我指定存放脚本工具的位置,那么/usr/bin/mysqlbinlog这个是怎么来的呢?初步判断是不小心安装rpm版本的mysql时候生成的。

那么知道原因,问题就好解决了:

删除/usr/bin/目录下的所有mysql工具,同时配置一下环境变量:

[root@Darren1 bin]# rm -rf /usr/bin/mysql*
[root@Darren1 bin]#echo 'export PATH=$PATH:/usr/local/mysql/bin/'>>/etc/profile
[root@Darren1 bin]#source /etc/profile

[root@Darren1 logs]# which mysqlbinlog
/usr/local/mysql/bin/mysqlbinlog

这样系统默认使用的就是对应版本的mysqlbinlog了。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL 关系型数据库 MySQL
【MySQL】mysqlbinlog_flashback工具使用
mysqlbinlog_back.py 是在线读取row格式的mysqld的binlog,然后生成反向的sql语句的工具。 一般用于数据恢复的目的。 所谓反向的sql语句就是如果是insert,则反向的sql为delete。 如果delete,反向的sql是insert,如果是update, 反向的sql还是update,但是update的值是原来的值。
240 0
【MySQL】mysqlbinlog_flashback工具使用
|
关系型数据库 MySQL
mysqlbinlog同步数据
mysqlbinlog同步数据
131 0
|
关系型数据库 MySQL
MySQL:从库binlog 使用mysqlbinlog stop-datetime过滤问题
更多主从同步相关可以参考我的《深入理解MySQL主从原理》专栏: 本文是一个朋友问我问题。从库使用mysqlbinlog --stop-datetime 的时候没有想要的记录。本文简单记录这个问题:如果从库log_slave_updates开启,那么从库需要记录从库应用的Event,有如下特点: 从库binlog记录的应用主库的Event,其Event header timestamp是主库的时间。
1304 0
|
关系型数据库 MySQL
mysqldump+mysqlbinlog执行备份与还原
服务器的二进制日志文件由用来描述修改数据库内容的事件组成。服务器以二进制方式来写这些文件。为了以文本格式来显示这些内容,可以使用mysqlbinlog工具。也可以使用mysqlbinlog来显示在复制环境中由从从slave服务器所写入中relay日志文件中的内容,因为其格式与二进制日志文件格式一样。
1254 0
|
关系型数据库 MySQL 数据库
xtrabuckup+mysqlbinlog实现mysql数据恢复
xtrabuckup+mysqlbinlog实现mysql数据恢复
1478 0
|
SQL 监控 关系型数据库
Mysqlbinlog的一些操作和用法
mysqlbinlog的一些操作
2113 0
|
关系型数据库 MySQL 数据库
mysqlbinlog flashback 5.6使用案例
转自:https://www.cnblogs.com/youge-OneSQL/p/5249736.html 简介 DBA或者开发人员,有时会误删除或者误更新数据。传统的数据库恢复方法是利用之前的备份再加上误操作之前的binlog,来恢复数据。
5101 0
|
监控 关系型数据库 MySQL
|
监控 关系型数据库 MySQL
|
存储 关系型数据库 MySQL