记一次 : canal-deployer 报错: Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file
懒得看文字的直看倒数后两行
完整报错
java.io.IOException: Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file
at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:102) ~[canal.parse-1.1.5.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:176) ~[canal.parse-1.1.5.jar:na]
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$1.run(AbstractEventParser.java:276) ~[canal.parse-1.1.5.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111]
差错思路
- 1.报错信息看来是找不到 binlog 日志, 于是第一时间去查一下binlog 日志的情况
- 2.然后复制 里面的 File : szc242013.004641 和 Position 到 instance 管理里面的配置文件中,如下
canal.instance.master.journal.name=szc242013.004641
canal.instance.master.position=377719481AA
- 3.保存重启. 没有解决.去服务器查看配置文件
cd /usr/local/canal-deployer/conf/你的出问题的instance库名
less meta.dat
meta.dat内容为:
{"clientDatas":[{"clientIdentity":{"clientId":1001,"destination":"ky_settlement","filter":""},"cursor":{"identity":{"slaveId":-1,"sourceAddress":{"address":"10.ppp.ppp.ppp","port":ppp}},"postion":{"gtid":"","included":false,"journalName":"szc242013.000459","position":693561003,"serverId":2500113406,"timestamp":1626846400000}}}],"destination":"库名"}
其中 journalName、position的值 和数据库中查到的是不一样的. 那问题就出在这里了.
- 两种方法.
- instance配置删掉重建一个,名字修改一下,配置一模一样. 我用的这种, 问题解决.
- 修改meta.dat内容 ,重启instance
以上都不行,可以尝试重置zk里面的信息。
./zkCli.sh -server 127.0.0.1:2181 deleteall /canal/otter/canal/destinations
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!