Browse Source

Merge pull request #250 from toruneko/fix-ha-switch

[BUGFIX] 在MySQL5.6做主备库切换时出现的filename乱码修复
agapple 8 years ago
parent
commit
8141ddc4e8

+ 2 - 1
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/MysqlConnection.java

@@ -83,7 +83,7 @@ public class MysqlConnection implements ErosaConnection {
      */
      */
     public void seek(String binlogfilename, Long binlogPosition, SinkFunction func) throws IOException {
     public void seek(String binlogfilename, Long binlogPosition, SinkFunction func) throws IOException {
         updateSettings();
         updateSettings();
-
+        loadBinlogChecksum();
         sendBinlogDump(binlogfilename, binlogPosition);
         sendBinlogDump(binlogfilename, binlogPosition);
         DirectLogFetcher fetcher = new DirectLogFetcher(connector.getReceiveBufferSize());
         DirectLogFetcher fetcher = new DirectLogFetcher(connector.getReceiveBufferSize());
         fetcher.start(connector.getChannel());
         fetcher.start(connector.getChannel());
@@ -94,6 +94,7 @@ public class MysqlConnection implements ErosaConnection {
         decoder.handle(LogEvent.XID_EVENT);
         decoder.handle(LogEvent.XID_EVENT);
         LogContext context = new LogContext();
         LogContext context = new LogContext();
         context.setLogPosition(new LogPosition(binlogfilename));
         context.setLogPosition(new LogPosition(binlogfilename));
+        context.setFormatDescription(new FormatDescriptionLogEvent(4, binlogChecksum));
         while (fetcher.fetch()) {
         while (fetcher.fetch()) {
             LogEvent event = null;
             LogEvent event = null;
             event = decoder.decode(fetcher, context);
             event = decoder.decode(fetcher, context);