问题说明:
下载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
发现查询成功