mysql故障--mysqlbinlog无法查询日志问题说明

问题说明:

下载binlog日志

mysqlbinlog  mysq-bin.000285查看binlog日志的时候报错

ERROR: Error in Log_event::read_log_event(): ‘Sanity check failed‘, data_len: 73, event_type: 30

ERROR: Could not read entry at offset 240: Error in log format or read error.

注释:

由于mysqlbinlog工具的版本和mysql数据库版本不兼容,或mysql数据库的版本太低

查看下mysqlbinlog的版本

mysqlbinlog  -V

mysqlbinlog Ver 3.3 for Linux at x86_64

查看下mysql的版本

mysql  -V

mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

我们看到mysql数据库版本是5.1的,而mysqlbinlog版本是3.3的,可以推断出是mysql数据库版本过低导致的mysqlbinlog命令不可用

问题解决:

升级mysql数据库

升级版本:MySQL版本:mysql-5.6.10

mysql安装目录:/usr/local/mysql

mysql数据库存放目录: /data/mysql

一、下载源码包

1.下载mysql源码

wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.10.tar.gz

2.下载cmake源码

Wget http://www.cmake.org/files/v2.8/cmake-2.8.10.tar.gz

二、安装编译工具以及依赖包

yum -y install make cmake gcc gcc-c++-* libtool ncurses-devel glibc glib2-devel openssl-devel pcre-devel bzip2-devel perl-devel

三、安装cmake

cd /data/packages/ 进入软件包存放目录

tar -xvzf cmake-2.8.10.tar.gz

cd cmake-2.8.10

./configure

make

make install

四、安装mysql

groupadd mysql          添加mysql组

useradd -g mysql mysql    创建mysql用户并加入到mysql组

mkdir -p /data/mysql      创建mysql数据库存放目录

chown -R mysql:mysql /data/mysql   设置mysql数据库存放目录权限

mkdir -p /usr/local/mysql           创建mysql安装目录

cd /data/packages/ 进入软件包存放目录

tar -xvzf mysql-5.6.10.tar.gz          解压mysql源码包

cd mysql-5.6.10 切换到解压目录下

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/data/mysql  -DSYSCONFDIR=/etc 检测环境

make 编译

make install 安装

rm -rf /etc/my.cnf 删除系统默认的配置文件

cd /usr/local/mysql 进入mysql安装目录

./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql  生成mysql系统数据库

ln -s /usr/local/mysql/my.cnf /etc/my.cnf 添加软连接

cp ./support-files/mysql.server  /etc/rc.d/init.d/mysqld 将mysql加入到系统启动

chmod 755 /etc/init.d/mysqld 添加执行权限

chkconfig mysqld on 加入到开机自启动

vim /etc/rc.d/init.d/mysqld

在该文件中修改

basedir=/usr/local/mysql mysql程序安装目录

datadir=/data/mysql mysql数据库存放路径

五、启动数据库

service mysqld start

六、将mysql服务加入到系统环境变量

vim /etc/profile

在该文件的最后添加下面一行

export PATH=$PATH:/usr/local/mysql/bin

六、设置mysql数据库密码

进入数据库

/usr/local/mysql/bin/mysql

SET PASSWORD = PASSWORD("newpassword");

flush privileges;

七、重启数据库

service mysqld restart

八、继续查询binlog

命令行输入mysqbinlog mysql-bin.00020845

发现还是不能查看

九、查看mysql数据库版本信息

命令行输入

mysql -V

mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

数据库版本没有变化,还是5.1版本

进入数据库查看mysql版本

/usr/local/mysql/bin/mysql -uroot -p 密码

mysql> select version();

+-----------+

| version() |

+-----------+

| 5.6.10    |

+-----------+

1 row in set (0.00 sec)

mysql>

数据库版本是mysql-5.6.10

执行下面操作

cp /usr/local/mysql/bin/mysql /usr/bin/mysql

再次查看数据库版本

mysql -V

mysql  Ver 14.14 Distrib 5.6.10, for Linux (x86_64) using  EditLine wrapper

版本已经更新为mysql-5.6.10

再次查询binlog

Mysqlbinlog mysql-bin.0003325

发现还是报错

执行下面操作

cp /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog

完成之后再次查看binlog

mysqbinlog mysql-bin.00032545

发现查询成功

原文地址:https://www.cnblogs.com/bazingafraser/p/8483693.html

时间: 2024-10-11 04:27:31

mysql故障--mysqlbinlog无法查询日志问题说明的相关文章

mysql中的慢查询日志

首先我们看一下关于mysql中的日志,主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 日志是mysql数据库的重要组成部分.日志文件中记录着mysql数据库运行期间发生的变化:也就是说用来记录mysql数据库的客 户端连接状况.SQL语句的执行情况和错误信息等.当数据库遭到意外的损坏时,可以通过日志查看文件出错的原因,并且可以通过日志文件进行数据恢复. 先看一下日志参数 mysql> show variables like '%log%'; +-----------------

MySQL 5.7 启用查询日志

MySQL版本:5.7 新版本的 my.ini 文件改动了,导致原先启用查询日志的方法不再适用 新版本的启用方法如下: 1. 修改 C:\ProgramData\MySQL\MySQL Server 5.7\my.ini 文件  搜索 # General and Slow logging.  将以下几行改动为: # General and Slow logging. log-output=FILE general-log=1 general_log_file="D:/Develop/MySQL/

mysql打启慢查询日志

[Warning] '--log_slow_queries' is deprecated and will be removed in a future release. Please use ''--slow_query_log'/'--slow_query_log_file'' instead. 1.修改配置文件 [mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysqlslow_query_log  #注

mysql慢查询日志

1.如何开启慢查询日志cd /etc/my.cnf[mysqld]log-slow-queries=/var/lib/mysqllong_query_time=n 停止mysql启动mysql -----------------------------------2.删除慢查询日志 1)直接删除即可2)#mysqladmin -u root -poracle flush-logs 注释:重新生成一个

MySQL的慢查询日志

mysql本身支持慢查询日志,可以配置SQL查询超过特定时间的查询记录到日志中.这在优化SQL查询中是非常有效的工具,能够帮助我们快速定位发生问题的SQL. 慢查询日志常用的变量   long_query_time : 最小值为0,默认为10毫秒,仅记录超过查询时间的SQL,最小粒度为毫秒. min_examined_row_limit : 执行查询时扫描过的行数. slow_query_log_file : 慢查询日志文件名称 log-output : 慢查询日志存放路径 log_querie

MYSQL 5.7.9 开启慢查询日志

用MYSQL 5.7.9 作为ZABBIX 2.4.7 的监控数据库. 前段时间开启了慢查询日志, 后来发现慢查询日志膨胀到了700M 查看最后100条 大部分都是 0.1 秒的 后来想改, 以前是动态设置的   set global slow_query_log=1; 方式的 . 然后想直接用配置文件/etc/my.cnf  配慢查询 7 [mysqld]      8       9 # Remove leading # and set to the amount of RAM for th

mysql慢查询日志分析工具 mysqlsla(转)

mysql数据库的慢查询日志是非常重要的一项调优辅助日志,但是mysql默认记录的日志格式阅读时不够友好,这是由mysql日志记录规则所决定的,捕获一条就记录一条,虽说记录的信息足够详尽,但如果将浏览慢查询日志做为一项日常工作,直接阅读mysql生成的慢查询日志就有可能比较低效了. 除了操作系统命令直接查看slowlog外,mysql自己也提供了一个阅读slowlog的命令行工具:mysqldumpslow,该命令行提供了一定的分析汇总功能,可以将多个类似的SQL语句抽象显示成一个,不过功能还是

mysql数据库用户管理及日志文件

用户管理实际应用:MySQL数据库是信息系统中非常重要的一个环节, 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.所以通常由管理员创建不同的管理账户,分配不同的操作权限,交给相应的人员使用.下面将详细介绍mysql数据库的用户创建.授权等操作.(一)用户查看: select user,authentication_string,host from user; (二)创建用户方法1: create user 'test01'@'localhost' identified

Mongodb profile(慢查询日志)

在MySQL中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是MongoDB Database Profiler.所以MongoDB 不仅有,而且还有一些比MySQL的Slow Query Log更详细的信息. 开启 Profiling  功能 有两种方式可以控制 Profiling  的开关和级别,第一种是直接在启动参数里直接进行设置. 启动MongoDB时加上–profile=级别  即可. 也可以在客户端调用 db.setProfil