Kafka-connect-tdengine 报错 JNI ERROR (0x2354): Unable to establish connection

TDengine是使用的docker部署,创建实例时curl -X POST -d @sink-demo.json http://localhost:8083/connectors -H “Content-Type: application/json”,报错日志如下:

java.sql.SQLException: JNI ERROR (0x2354): Unable to establish connection
at com.taosdata.jdbc.TSDBError.createSQLException(TSDBError.java:90)
at com.taosdata.jdbc.TSDBJNIConnector.connect(TSDBJNIConnector.java:134)
at com.taosdata.jdbc.TSDBConnection.connect(TSDBConnection.java:45)
at com.taosdata.jdbc.TSDBConnection.(TSDBConnection.java:31)
at com.taosdata.jdbc.TSDBDriver.connect(TSDBDriver.java:176)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at com.taosdata.kafka.connect.db.TSDBConnectionProvider.getConnection(TSDBConnectionProvider.java:35)
at com.taosdata.kafka.connect.db.CacheProcessor.getConnection(CacheProcessor.java:43)
at com.taosdata.kafka.connect.db.CacheProcessor.execute(CacheProcessor.java:69)
at com.taosdata.kafka.connect.db.CacheProcessor.initDB(CacheProcessor.java:58)
at com.taosdata.kafka.connect.db.CacheProcessor.setDbName(CacheProcessor.java:36)
at com.taosdata.kafka.connect.sink.TDengineSinkTask.bulkWriteBatch(TDengineSinkTask.java:94)
at com.taosdata.kafka.connect.sink.TDengineSinkTask.put(TDengineSinkTask.java:85)
at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:539)
at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:322)
at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:224)
at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:192)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:177)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:227)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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:750)
[2026-04-24 12:08:09,783] INFO create TDengine Connection, Attempt 1 of 3 (com.taosdata.kafka.connect.db.TSDBConnectionProvider:34)
[2026-04-24 12:08:30,075] INFO Unable to connect to database on attempt 2/3. Will retry in 5000 ms. (com.taosdata.kafka.connect.db.TSDBConnectionProvider:39)
java.sql.SQLException: JNI ERROR (0x2354): Unable to establish connection
at com.taosdata.jdbc.TSDBError.createSQLException(TSDBError.java:90)
at com.taosdata.jdbc.TSDBJNIConnector.connect(TSDBJNIConnector.java:134)
at com.taosdata.jdbc.TSDBConnection.connect(TSDBConnection.java:45)
at com.taosdata.jdbc.TSDBConnection.(TSDBConnection.java:31)
at com.taosdata.jdbc.TSDBDriver.connect(TSDBDriver.java:176)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at com.taosdata.kafka.connect.db.TSDBConnectionProvider.getConnection(TSDBConnectionProvider.java:35)
at com.taosdata.kafka.connect.db.CacheProcessor.getConnection(CacheProcessor.java:43)
at com.taosdata.kafka.connect.db.CacheProcessor.execute(CacheProcessor.java:69)
at com.taosdata.kafka.connect.db.CacheProcessor.initDB(CacheProcessor.java:58)
at com.taosdata.kafka.connect.db.CacheProcessor.setDbName(CacheProcessor.java:36)
at com.taosdata.kafka.connect.sink.TDengineSinkTask.bulkWriteBatch(TDengineSinkTask.java:94)
at com.taosdata.kafka.connect.sink.TDengineSinkTask.put(TDengineSinkTask.java:85)
at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:539)
at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:322)
at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:224)
at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:192)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:177)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:227)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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:750)

taosdlog.0日志报这个错误:

您使用的原生连接方式,从taosd日志看:ERROR recv invalid msg,是客户端的版本 与 服务端版本不一致的原因,已经不兼容了。需要将客户端升级到与服务端一致的版本。

我的客户端使用的就是官网提供的3.0分支。git clone --branch 3.0 https://github.com/taosdata/kafka-connect-tdengine.git
为什么显示 version:2

是clone 源码自己编译的版本吗?

是的,就是按照官网的步骤进行的

这样应该没有问题吧

做对了应该是没有问题。但出问题了不好判断。最好使用我们发布的版本。