Canal使用报错解决办法

1、 [destination = test_cancal , address = /127.0.0.1:3306 , EventParser] WARN c.a.o.s.a.i.setl.zookeeper.termin.WarningTerminProcess - nid:1[1:canal:test_cancal:java.lang.NullPointerException
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.loadBinlogChecksum(MysqlConnection.java:284)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:113)
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:209)
at java.lang.Thread.run(Thread.java:722)

报错原因:我使用的Canal版本是1.0.23, 这个是一个Canal的一个BUG

解决办法:升级Canal版本至1.0.24

参考:http://chenchangqun.iteye.com/blog/2358960

2、ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:example[com.alibaba.otter.canal.parse.exception.CanalParseException: java.io.IOException: connect /127.0.0.1:3306 failure:java.io.IOException: Error When doing Client Authentication:ErrorPacket [errorNumber=1045, fieldCount=-1, message=Access denied for user 'canal'@'localhost' (using password: YES), sqlState=28000, sqlStateMarker=#]

报错原因:mysql版本的问题, linux yum默认安装的是mysql5.1

解决办法:

mysql> use mysql 
mysql> delete from user where user=''; 
mysql> flush privileges; 

参考:https://github.com/alibaba/canal/issues/146

3、Canal HA 模式下,正常关闭其中一个Canal Server,Client无法重新获取到数据

  现象描述:Canal HA 模式下,正常关闭其中一个Canal Server, 总ZK上可以看到Canal Server切换到了另外一个IP,但是client无法获取数据

  解决办法:这个问题貌似无解,github上canal issus也有人碰到这个问题,说升级到canal-1.0.26 alpha版本,但是经验证也不行。

  issue:https://github.com/alibaba/canal/issues/581

猜你喜欢

转载自www.cnblogs.com/jsnr-tdyd/p/9094752.html