项目场景:
Flink CDC实时同步Mysql数据问题描述:
[io.debezium.connector.mysql.SnapshotReader] - Failed due to error: Aborting snapshot due to error when last running ‘UNLOCK TABLES’: Can’t call rollback when autocommit=true:
2022-02-26 16:31:30,002 ERROR [io.debezium.connector.mysql.SnapshotReader] - Failed due to error: Aborting snapshot due to error when last running 'UNLOCK TABLES': Can't call rollback when autocommit=true
org.apache.kafka.connect.errors.ConnectException: Can't call rollback when autocommit=true Error code: 0; SQLSTATE: 08003.
at io.debezium.connector.mysql.AbstractReader.wrap(AbstractReader.java:241)
at io.debezium.connector.mysql.AbstractReader.failed(AbstractReader.java:218)
at io.debezium.connector.mysql.SnapshotReader.execute(SnapshotReader.java:857)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLNonTransientConnectionException: Can't call rollback when autocommit=true
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:1833)
at io.debezium.connector.mysql.SnapshotReader.execute(SnapshotReader.java:766)
... 3 more
原因分析:
需要关闭链接的自动事务提交解决方案:
connection.setAutoCommit(false);
版权声明:本文为qq_36369061原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。