使用 FlinkCDC 提交任务报错:NoSuchMethodError:io.debezium.connector.mysql.MySqlConnection$MySqlConnectionConfiguration
Exception in thread "main" java.lang.NoSuchMethodError: io.debezium.connector.mysql.MySqlConnection$MySqlConnectionConfiguration.<init>(Lio/debezium/config/Configuration;Ljava/util/Properties;)V
at org.apache.flink.cdc.connectors.mysql.debezium.DebeziumUtils.createMySqlConnection(DebeziumUtils.java:91)
at org.apache.flink.cdc.connectors.mysql.debezium.DebeziumUtils.createMySqlConnection(DebeziumUtils.java:84)
at org.apache.flink.cdc.connectors.mysql.utils.MySqlSchemaUtils.listTables(MySqlSchemaUtils.java:60)
at org.apache.flink.cdc.connectors.mysql.factory.MySqlDataSourceFactory.getTableList(MySqlDataSourceFactory.java:276)
at org.apache.flink.cdc.connectors.mysql.factory.MySqlDataSourceFactory.createDataSource(MySqlDataSourceFactory.java:170)
at org.apache.flink.cdc.composer.flink.translator.DataSourceTranslator.createDataSource(DataSourceTranslator.java:91)
at org.apache.flink.cdc.composer.flink.translator.DataSourceTranslator.translate(DataSourceTranslator.java:48)
at org.apache.flink.cdc.composer.flink.FlinkPipelineComposer.compose(FlinkPipelineComposer.java:100)
at org.apache.flink.cdc.cli.CliExecutor.run(CliExecutor.java:89)
at org.apache.flink.cdc.cli.CliFrontend.main(CliFrontend.java:69)
- 感觉是 jar 包冲突,把 Flink 的 lib 文件夹的 flink-sql-connector-mysql-cdc-2.2.1 删除重启 Flink 即可(记得备份,别有别的问题了)
- 或者把 Flink 下的 flink-sql-connector-mysql-cdc 包切换成和 FlinkCDC lib 文件夹下同版本的