TDengine的java原生接口TSDBDriver连接错误

Posted

技术标签:

【中文标题】TDengine的java原生接口TSDBDriver连接错误【英文标题】:TDengine's java native interface TSDBDriver connection error 【发布时间】:2021-11-22 03:23:08 【问题描述】:

我尝试将 TDengine 导入 Spring Boot 项目。有两个 taos.jdbc 连接器可供选择,RESTfulDriver 和 TSDBDriver。

我选择导入Java原生接口TSDBDriver来连接TDengine。不幸的是,Spring Boot 成功导入了依赖项但显示连接失败。我想知道是因为配置问题还是TSDBDriver与mac不兼容。这是我的依赖项和错误:

 datasource:
        td-engine:
          driver-class-name: com.taosdata.jdbc.TSDBDriver
          url: jdbc:TAOS://###
          username: ###
          password: ###
java.lang.UnsatisfiedLinkError: no taos in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
    at java.lang.Runtime.loadLibrary0(Runtime.java:871)
    at java.lang.System.loadLibrary(System.java:1124)
    at com.taosdata.jdbc.TSDBJNIConnector.<clinit>(TSDBJNIConnector.java:25)
    at com.taosdata.jdbc.TSDBDriver.connect(TSDBDriver.java:119)
    at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156)
    at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
    at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150)
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1598)
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1662)
    at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2697)

【问题讨论】:

【参考方案1】:

这意味着您需要将 libtaos.so 添加到您的 java.library.path 中。将此选项添加到您的 java 命令中:

-Djava.library.path=/path/to/<dir_of_libtaos.so>

如果你在本地安装了 TDEngine,它在 /usr/lib 中有 libtaos.so。否则,您可以在其源代码包中找到它的 libtaos.so.2.0.22.0。您需要将 libtaos.so 符号链接到 libtaos.so.2.0.22.0,因为 jvm 仅识别 java.library.path 中的 *.so。例如:

ln -s lib/libtaos.so.2.0.22.0 lib/libtaos.so

【讨论】:

以上是关于TDengine的java原生接口TSDBDriver连接错误的主要内容,如果未能解决你的问题,请参考以下文章

tdengine jdbc restful接口返回值最大只有10240条

TDengine压力测试之RESTful

从Hadoop到TDengine,我们走过的路和展望

程洪泽:TDengine架构设计及在云服务中的应用

TDengine java插入字符段

如何使用JDBC连接TDengine数据库?