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版本,但是经验证也不行。