IllegalArgumentException: Illegal character in scheme name at index 0: 172.16.188.7:9200
如果连接es使用的是rest方式,那么hosts中的ip前要添加http://,如
com.alibaba.druid.pool.DruidDataSource cannot be cast to com.alibaba.druid.pool.DruidDataSource
原因: druid 包冲突 解决: 1、修改client-adapter/escore/pom.xml 2、重新打包 3、将client-adapter/es7x/target/client-adapter.es7x-1.1.5-jar-with-dependencies.jar上传到服务器,替换adataper/plugin下的同名jar文件 4、给该文件赋权 5、重启服务
CanalParseException: java.io.IOException: EOF encountered
将lib目录下的mysql驱动器替换为mysql8.0,并附权。参考上述
CanalClientException: java.io.IOException: Broken pipe Error sync but ACK
服务连接断开了,将deployer和adapter都关闭,先启动deployer再启动adapter
DocumentMissingException[_doc: document missing]
1、es集群出现问题,导致doc无法分配。常见的是分片数的问题,可能是副本分片过多,导致集群报黄 解决: 因为我的是es单节点,所以将主分片数设置为1,副本分片设置为0。不申明的话默认创建副本分片数为1 2、修改的mysql数据库数据,在es中不存在。先进行全量同步,再进行增量同步 在conf/example/instance.properties中修改
ERROR c.a.otter.canal.server.netty.handler.SessionHandler - something goes wrong with channel:[id: 0x23d9cad9, /127.0.0.1:46472 :> /127.0.0.1:11111], exception=java.nio.channels.ClosedChannelException
这是由于deployer中的conf/example/meta.dat与instance.properties文件中的journalName,position,timestamp不一致导致的将meta.dat删除或者修改一致即可。删除后将会按照instance.properties中设置的起点同步,生产环境考虑好需要后再删除。 如果想要将之前的数据也同步的话,可以将数据库先导出,再重新导入一遍,即可重新生成binlog,实现数据的全量同步
Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file
mysql bin log数据不同步,刷新一下即可
binlog也设置为000001了,timestamp也设置了,但就是无法实现全量同步
1、删除conf/example/meta.dat 2、调整conf/example/instance.properties
3、重启deployer 另外需要注意的是如果bin log是只会记录增量操作的,也就是说开启bin log之前的历史数据是不会记录的,如果需要同步者之前的数据,解决这个问题有三个办法: (1)通过logstash-input-jdbc来实现 (2)通过业务代码来实现(后续会详细讲解这两种方式,可以关注我后续的博客) (3)复制原数据库数据到开启了binlog的从数据库,然后从从数据库同步
adapter启动报错:something goes wrong when starting up the canal client adapters: java.lang.NullPointerException: null
这个报错是空指针报错,很明显是哪里获取为空的,这种错误没有固定的原因,但大概率上可以锁定配置文件的问题 1、adapter的配置文件中是有包含了mysql、es、mq、zk等配置,如果不需要的配置项,就将其注释掉,不要打开 比如我这里的报错原因就是因为打开了zookeeperHosts,但是没有配置具体值,所以导致了空指针,因为我不需要zk,将其注释掉即可 2、某些必要的配置没有设置,快速排查的方式就是根据官方文档中给出的配置文件对比排错 可以参考如下配置文件 3、配置文件中配置项排版错位