产生原因

Could not find first log file name in binary log index file表示根据目前的点位信息无法获取到binlog,发生这样情况通常是由于数据库的binlog过期清理或人为删除。

解决办法

如果是单机的Canal

可以修改canal/conf/example/meta.data文件,设置成当前存在的点位;或者直接删除。
然后重启canal服务。

如果是使用zookeeper集群的Canal

首先停止Canal服务。
Canal的点位信息存储在zookeeper的:
/otter/canal/destinations/example/1001/cursor,可以通过set或者delete修改、删除该节点。
最后重启Canal服务。