当mysqlbinlog版本与mysql不一致时可能导致出哪些问题

当mysqlbinlog版本与mysql不一致时可能导致出哪些问题,第1张

首先要确定当前版本是不是mysqlbinlog版本,当不是mysqlbinlog版本时可能会导致出哪些问题,下面通过模拟场景的方法给大家做介绍,希望对大家有所帮助。

看当前mysqlbinlog版本的方法:

mysqlbinlog --version

mysqlbinlog Ver 3.3 for Linux at x86_64

场景1:mysql服务器为mysql

5.6,要求mysqlbinlog版本为3.4及以上,否则mysqlbinlog解析时会直接报错,之前已经碰到过很多次,但是没有记录具体的报错信

息,貌似和position位置不存在的报错信息差不多,后来改用mysqlbinlog 3.4版本以后方可解析;

场景2:今天帮客户做一个db恢复,备份文件是全库备份,恢复却只能恢复某个db到一个特定的时间点。方法如下:mysql加上-o

database_name参数执行全备份的sql文件,然后用mysqlbinlog的-d

database_name参数解析指定库的binlog文件,期间使用到了mysqlbinlog,mysql

server是5.6,mysqlbinlog版本是3.3,结果mysqlbinlog解析并没有报错,执行报错,查看解析出来的binlog有很多乱

码,起初以为是字符集的问题,但查了半天也没发现问题。后来才尝试用3.4版本的mysqlbinlog解决了这个问题,类似的乱码如下图

总结:当mysql服务器版本是5.6时,一定切记要使用版本>=3.4的mysqlbinlog

感觉你写的问题。我读了很长时间也没有看懂。

场景1 : 你场景1 的问题 有问题, 没有明白你是要单查 appid = 'test2'还是要分组.

单查:

select * from request_log where appid = 'test2'

分组 :

select * from request_log where appid = 'test2' group by appid

场景2:你场景2 的问题 也有问题, 没有明白你是要通过哪个字段进行分组.是 appid 吗?

select * from request_log group by appid

最后说一下,你问 问题的方式不是一般人能理解的。

首先定义三个表,学生(id,sno,name),课程(cid,cname),成绩表(sid,id,cid,score),这样,数据库表基本定义完成,这个是数据库 *** 作的关键,接下来用sql语句给每张表插入数据:例如学生表,id自增长

insert into student(sno,sname) values(学号,学生姓名)

参考一下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7443652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存