设计器可以成功连接tdengine数据库,但为什么部署的服务却连接不上tdengine数据库

1,我驱动的话,设计器和服务端都进行了添加,驱动放在了设计器的webapps\webroot\WEB-INF\lib下面,我采用jdbc连接,是可以成功连接并使用的

2,在服务端的话,我添加了两次驱动,一次是手动添加到webapps\webroot\WEB-INF\lib下面,第二次是利用服务端自带的添加驱动设置进行的添加,两个驱动我都分别去用来进行连接tdengine数据库,都失败了。

3.可以排除的原因,url,账号密码,都是正确的,驱动版本也是与数据库的版本对应的,都是3.0.3,image.png这两个分别进行测试过,都无法进行连接成功,最大连接池和获取连接前检验我试着修改过,结果也是没有效果。

(补充),之前在服务平台上成功连接过,但我部署另一个服务却无法连接,第二个服务和第一个服务配置什么的是一样的,因为是复制过去的,只不过是换了台电脑,就无法复刻了

4.最终报错是这个样子微信图片_20230407141923.jpg

5.从最开始的部分报错信息:com.fr.third.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 10000, active 0, maxActive 50, creating 0, createErrorCount 2 at com.fr.third.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1836) at com.fr.third.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1483) at com.fr.third.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1463) at com.fr.third.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1452) at com.fr.third.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:100) at com.fr.stable.pool.DataSourceAdapter.getConnection(DataSourceAdapter.java:60) at com.fr.stable.pool.DataSourceWrapper.getConnection(DataSourceWrapper.java:263) at com.fr.data.pool.MemoryConnection.create(MemoryConnection.java:240) at com.fr.data.auth.Authentication.authenticate(Authentication.java:50) at com.fr.data.auth.normal.NormalAuthentication.authenticate(NormalAuthentication.java:50) at com.fr.data.impl.JDBCDatabaseConnection.createConnection(JDBCDatabaseConnection.java:339) at com.fr.data.impl.JDBCDatabaseConnection.testConnection(JDBCDatabaseConnection.java:318) at com.fr.decision.webservice.v10.datasource.connection.processor.impl.JDBCConnectionProcessor.testConnection(JDBCConnectionProcessor.java:210) at com.fr.decision.webservice.v10.datasource.connection.processor.impl.ConnectionProcessorFactory.testConnectionWithSchemaReturn(ConnectionProcessorFactory.java:61) at com.fr.decision.webservice.v10.datasource.connection.ConnectionService.testConnection(ConnectionService.java:95) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.fr.decision.config.ConfigInterceptor.intercept(ConfigInterceptor.java:34) at com.fr.decision.webservice.v10.datasource.connection.Connection

FineReport ytw 发布于 2023-4-7 14:20 (编辑于 2023-4-7 15:17)
1min目标场景问卷 立即参与
回答问题
悬赏:13 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
ytwLv3见习互助
发布于2023-4-13 10:23

平台使用jdbc的方式连接taos数据库需注意几点

  1. 驱动版本问题,使用的驱动最好是最新版本的驱动,驱动与数据库的版本不一样其实没多大关系,但一定要比数据库的版本要高,因为我之前用与数据库的版本一样的驱动进行连接时发现有时区问题,taos客户端和url后面加时区,亦或者使用taos的函数TIMESTAMP都没有效果,后来把驱动版本升到最高时区问题自动就接解决了,如果你不想升级驱动,那么在查询数据的时候,在sql语句中查询,时间条件就往前查八个小时,比如你想查8点钟的数据,那么条件就这么写就好了(where datetime="2023-04-13 00:00:00")

  2. 在平台配置数据连接的时候,要记得把“获取连接前检验”修改成否

  3. 使用jdbc的方法连接taos数据库,一定要安装taos客户端,也就是taos shell,没有涛思客户端的话连接会报连接池错误

  4. 对于taos的jdbc驱动放在那里,我认为有三个地方,(1)/tomcat-linux/lib下,(2)/tomcat-linux/webapps/webroot/WEB-INF/lib 这两种方式适用于进行默认连接 直接在驱动那块把这个粘上(com.taosdata.jdbc.TSDBDriver) (3)使用平台自带的上传驱动,不过要改一个(finedb字段修改.cpt)的表还要配一个数据库( FineDB)驱动操作连接放在这里了,驱动管理- FineReport帮助文档 - 全面的报表使用教程和学习资料 (fanruan.com)

  5. 要注意配置数据连接的时候,主机,端口,数据库名称,那几个框不要填 直接把这些都在url里拼好直接写在url的那个框里image.png如果你填了的话帆软原生是没有taos的,url就会变成(jdbc:h2://*****)这样是连接不上的

  6. 再就是当你发现连接成功了但在数据库查询里出现这种情况image.png这个不用怕,我的理解是时序库的结构和关系型数据库的结构不一样,没法正常的展示时序库的表结构,但之前连接es的时候没碰到这个问题,表能正常展示,总之不管怎么样sql是可以正常写的,也可以正常查询出来

最佳回答
0
snrtuemcLv8专家互助
发布于2023-4-7 14:37

正常设计器可以链接,服务器也是可以

拷贝jdbc驱动后,需要服务器重启下再按照设计器那要链接就可以

=======

ps,注意,你的设计器和服务器的jar包版本,插件,插件版本,配置都需要一致,这样才可以

  • 0关注人数
  • 434浏览人数
  • 最后回答于:2023-4-13 10:23
    请选择关闭问题的原因
    确定 取消
    返回顶部