开发者社区> 问答> 正文

rowChage.getEventType()获取的类型全部是是QUERY,但是rowChage.g

如题,在监控mysql一个数据库时,rowChage.getEventType()拿到的所有类型都是QUERY,但是rowChage.getSql()拿到的语句却都是INSERT或者UPDATE或者DELETE,怀疑rowChage.getEventType()没有获取到值,给了一个默认QUERY值

代码中打印的日志的语句:

        logger.info("此次操作类型:"+rowChage.getEventType().toString());

        logger.info("sql------>:"+rowChage.getSql());

        logger.info("是否是ddl----->"+rowChage.getIsDdl());

控制台打印出来的日志: [2018-02-01 11:29:02.614][INFO][Thread-6]c.p.mycode.canal.ClusterCanalClient-handleData:此次操作类型:QUERY [2018-02-01 11:29:02.615][INFO][Thread-6]c.p.mycode.canal.ClusterCanalClient-handleData:sql------>:DELETE FROM QRTZ_CREDITCARD_FIRED_TRIGGERS WHERE ENTRY_ID = 'cfc-sit-jd-web04.haomoney.local15174069672781517407028267' [2018-02-01 11:29:02.615][INFO][Thread-6]c.p.mycode.canal.ClusterCanalClient-handleData:是否是ddl----->false

原提问者GitHub用户hnwkz

展开
收起
绿子直子 2023-05-09 10:53:57 85 0
2 条回答
写回答
取消 提交回答
  • binlog非row模式

    原回答者GitHub用户agapple

    2023-05-10 10:19:10
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    这可能是因为Canal客户端与MySQL实例之间的连接设置不正确或Canal客户端版本和MySQL版本不匹配导致的。请确定以下因素:

    检查Canal客户端连接MySQL实例的配置文件是否正确,包括数据库地址、端口、用户名、密码等信息。

    检查Canal客户端和MySQL实例之间的网络连接是否正常,是否存在防火墙或其他网络安全设置。

    检查Canal客户端和MySQL实例的版本是否匹配,例如Canal客户端是否支持MySQL实例的binlog格式。

    如果以上问题都不存在,可以尝试更新Canal客户端和MySQL实例的版本,并重新运行Canal客户端。如果问题仍然存在,可以尝试使用其他MySQL客户端工具(例如mysqlbinlog)来查看binlog,并检查binlog的格式是否正确,以进一步排除问题。

    2023-05-09 12:03:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载