KL个人博客 首页>>mysql

记 mysql-connector-java:8.0.28 的 bug 排查,你可能也踩坑了

前言 如标题,最终查明问题是因为 mysql-connector-java:8.0.28 的一个 bug 导致的。但是在真相未浮出之前,整个问题可谓扑朔迷离,博主好久没有排查过如此得劲的 bug ,随着一层层的 debug 深入,真相也随之浮出水面。这个问题属于底层 jdbc 驱动的问题,具有普遍性,可能不知不觉中,你的应用也在线上遭受这个 bug 的摧残,所以,请耐心听我讲完这个故事,然后回去检查下你的应用状态,...

阅读全文 »

解析OpLog订阅MongoDB的数据变更就这么简单

解析OpLog订阅MongoDB的数据变更就这么简单

前言 我们开源了一个订阅分发mysql的binlog的项目,一直用的非常好,忽然有天开发说能不能支持MongoDB的数据订阅呢,MongoDB的使用度也挺广泛的。安排。经过简单的了解后发现MongoDB也有类似binlog的机制,最终花了两天时间把功能完成,并统一抽象集成到binlog开源项目中,使用和binlog同一套订阅分发模型管理MongoDB数据源。整个过程非常顺利,比整mysql的binlog要简单的多了。 binlog数据订阅...

阅读全文 »

关于mysql的事务,这些你都了解了么?

关于mysql的事务,这些你都了解了么?

前言 这篇博文源于公司一个批处理的项目异常而起的。先简单描述下发生背景。一个基于spring batch开发的批处理应用,线上运行了9个多月后,某一天突然跑批任务失败了,检查日志得知,是因为一个mysql异常导致的:Lock wait timeout exceeded。msyql事务锁等待超时这个异常虽然不常见,但随便一搜就会看到大量的相关的信息。导致这个异常的原因就是mysql数据库事务锁等待超时,默认超时时...

阅读全文 »

mysql日志binlog消费初体验

mysql日志binlog消费初体验

前言碎语 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅消费的业务,产出了canal项目。canal的原理很简单,就是如上图片所示 canal模拟mysql slave的交互协议,伪...

阅读全文 »

mysql 连接异常Communications link failure

前言碎语 最近在监控线上日志时发现,时长会抛出如:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 4,977,174 milliseconds ago. The last packet sent successfully to the server was 1 milliseconds ago 异常信息,通常见到如上异常,是因为应用使用了连接池管理连接,有些连接已经失效了,拿失效的连接去请求mysql导致的,这个就是经典的mysql八小...

阅读全文 »

mysql函数大全

mysql函数大全

一、数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP(x) 返回值e(自然对数的底)的x次方 FLOOR(x) 返回小于x...

阅读全文 »

mysql 中 "非数字"=0 衡为true

mysql 中 "非数字"=0 衡为true...

阅读全文 »