使用 FlinkCDC 提交任务报错:NoSuchMethodError:io.debezium.connector.mysql.MySqlConnection

180 阅读1分钟

使用 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 文件夹下同版本的