Spring Boot使用TSDBDriver连接TDengine报no taos in java.library.path错误
错误原因
java.lang.UnsatisfiedLinkError: no taos in java.library.path 报错的核心原因是你选用的TSDBDriver是JNI实现的原生驱动,并非纯Java组件,运行时必须依赖TDengine客户端提供的本地动态链接库,当前JVM无法加载到对应的库文件。该驱动本身是兼容Mac系统的,不是兼容性问题,也和你当前的Spring配置无关。
解决方案
方案一:继续使用TSDBDriver
- 先在本地Mac设备上安装和服务端版本完全一致的TDengine客户端,版本不匹配会直接导致连接失败。
- 给项目添加JVM启动参数:
-Djava.library.path=/usr/local/lib,Mac系统下TDengine客户端默认会将动态链接库libtaos.dylib放在该路径,如果你自定义了安装路径就替换为实际存放路径。IDEA启动的话直接在对应运行配置的VM Options栏添加该参数即可。 - 启动项目前先在终端执行
taos -h [TDengine服务端IP]验证本地客户端可以正常连接服务端,确认没问题后再运行Java项目。
方案二:切换为纯Java实现的RESTfulDriver
不需要安装任何本地客户端,直接修改数据源配置即可:
datasource: td-engine: driver-class-name: com.taosdata.jdbc.rs.RESTfulDriver url: jdbc:TAOS-RS://[服务端IP]:6041/[库名]?useSSL=false username: 你的用户名 password: 你的密码
注意RESTful驱动默认端口为6041,需要确认服务端该端口已开放,若服务端开启了HTTPS访问,需将useSSL改为true,端口替换为6049。
内容的提问来源于stack exchange,提问作者cpvmrd
相关产品推荐
相关产品推荐

