问题原因
在本地测试环境安装canal-1.1.4启动没有问题,在线上安装后启动服务失败,查看日志报错
根据排查是因为mysql表中modified_time字段的问题
解决办法
方法一:把表中的modified_time字段定义全部由not null更改成null
方法二:在mysql 配置文件加上
explicit_defaults_for_timestamp=false
explicit_defaults_for_timestamp参数:
默认情况下,timestamp类型字段所在数据行被更新时,该字段会自动更新为当前时间,而参数explicit_defaults_for_timestamp控制这一种行为。
explicit_defaults_for_timestamp=off,数据行更新时,timestamp类型字段更新为当前时间;
explicit_defaults_for_timestamp=on,数据行更新时,timestamp类型字段不更新为当前时间。
因为使用第一种方法后就好了,所以没有尝试第二种方法
参考文献:
https://github.com/alibaba/canal/issues/2747
https://github.com/alibaba/canal/issues/2500
https://blog.csdn.net/weixin_39004901/article/details/90205523