背景

中午睡了一觉,起来发现连不上我的 TDengine 服务了。。

最近刚换了电脑,没错,这次的事故又是换电脑引发的。。

服务报错

SpringBoot项目的控制台错误信息: java.sql. SQLException: JNI ERROR (2354): JNI connection is NULL

这个问题我曾经在这篇文章2-TDengine客户端连接,RESTful,JDBC里也遇到过, 当时是因为我没有开放 6030UDP 端口,可是现在我连整个防火墙都关了。无奈之下,又到官网重温下客户端连接失败的解决方法。

问题排查

官方建议:客户端遇到连接故障,请按照下面的步骤进行检查:

检查网络环境云服务器:检查云服务器的安全组是否打开TCP/UDP 端口6030-6042的访问权限本地虚拟机:检查网络能否ping通,尽量避免使用localhost 作为hostname公司服务器:如果为NAT网络环境,请务必检查服务器能否将消息返回值客户端确保客户端与服务端版本号是完全一致的,开源社区版和企业版也不能混用在服务器,执行 systemctl status taosd 检查taosd运行状态。如果没有运行,启动taosd确认客户端连接时指定了正确的服务器FQDN (Fully Qualified Domain Name —— 可在服务器上执行Linux命令hostname -f获得),FQDN配置参考:一篇文章说清楚TDengine的FQDN。ping服务器FQDN,如果没有反应,请检查你的网络,DNS设置,或客户端所在计算机的系统hosts文件。如果部署的是TDengine集群,客户端需要能ping通所有集群节点的FQDN。检查防火墙设置(Ubuntu 使用 ufw status,CentOS 使用 firewall-cmd --list-port),确认TCP/UDP 端口6030-6042 是打开的对于Linux上的JDBC(ODBC, Python, Go等接口类似)连接, 确保libtaos.so在目录/usr/local/taos/driver里, 并且/usr/local/taos/driver在系统库函数搜索路径LD_LIBRARY_PATH里对于Windows上的JDBC, ODBC, Python, Go等连接,确保C:\TDengine\driver\taos.dll在你的系统库函数搜索目录里 (建议taos.dll放在目录 C:\Windows\System32)如果仍不能排除连接故障Linux 系统请使用命令行工具nc来分别判断指定端口的TCP和UDP连接是否通畅 检查UDP端口连接是否工作:nc -vuz {hostIP} {port} 检查服务器侧TCP端口连接是否工作:nc -l {port} 检查客户端侧TCP端口连接是否工作:nc {hostIP} {port}Windows 系统请使用 PowerShell 命令 Net-TestConnection -ComputerName {fqdn} -Port {port} 检测服务段端口是否访问也可以使用taos程序内嵌的网络连通检测功能,来验证服务器和客户端之间指定的端口连接是否通畅(包括TCP和UDP):TDengine 内嵌网络检测工具使用指南。

问题解决

其实,以上很多原因都是可以排除的,比如我的网络是不是能 ping 通,是不是防火墙问题, maven 依赖里的 taos-jdbcdriver 版本是不是兼容, JNI 方式的客户端是否安装 taos.dll ,服务端 taosd 是否运行等等。

然后,鬼使神差地,我就想用 IDEA 的数据库插件连接 TDengine 试一下,输入连接信息,用户密码信息,配置下 driver ,测试连接……一气呵成~~

这时,问题暴露了: JNI ERROR(2345): Client and server's time is not synchronized.

竟然是因为客户端与服务端的时间不一致导致的,我瞬间反应过来,中午睡觉时,电脑休眠了,虚拟机也休眠了,最后的最后,就是虚拟机的时间滞后了。。

顺便来看下虚拟机的时间验证下:(接着,我使用阿里云提供的的网络时钟同步服务 NTP 校准了服务器时间)

问题总结

一般我都会把电脑的休眠时间设为2小时,这样我在短时间离开后不用重新唤醒主机。

而昨天换电脑后还没来得及进行设置,默认10分钟后就休眠了,然而我去睡觉了( ̄o ̄) . z Z,便酿成了今日的一幕惨剧,耗费了半个小时。

同时,也期待 TDengine 的客户端依赖在实际开发时,尽量将错误信息提示清楚,不然,总会让人手足无措,摸不着头脑。。

Reference

  • https://www.taosdata.com/cn/documentation/faq
  • 2-TDengine客户端连接,RESTful,JDBC

If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!

13-TDengine使用JDBC-JNI连接报错:JNI connection is NULL相关推荐

  1. ssh连接报错:Connection refused详细解决办法

    出现此报错,主要是有两个问题,第一就是没有安装ssh相关服务软件:第二是没有启动sshd服问题原因: 没有安装ssh相关服务软件: 没有启动sshd服务. 首先查看一下是否有安装提供sshd服务的软件 ...

  2. hive连接报错:Unauthorized connection for super-user: root from IP 192.168.216.128:14:13

    hive连接报错:Unauthorized connection for super-user: root from IP 192.168.216.128:14:13 解决方法: hadoop的cor ...

  3. mysql8连接数据库显示cache_MySQL数据库之mysql 8.0 java连接报错:Unknown system variable 'query_cache_size'...

    本文主要向大家介绍了MySQL数据库之mysql 8.0 java连接报错:Unknown system variable 'query_cache_size' ,通过具体的内容向大家展现,希望对大家 ...

  4. quartz mysql 报错_7月27 mysql quartz 连接报错

    一.mysql quartz 连接报错 org.quartz.JobPersistenceException: Couldn't acquire next trigger: The last pack ...

  5. hive 使用beelin连接报错

    1.在当前服务器启动hiveserver2服务,远程客户端通过beeline连接 报错信息如下: root@master:~# beeline -u jdbc:hive2//master:10000 ...

  6. 树莓派4b使用vncview连接报错:Cannot currently show the desktop

    树莓派4b使用vncview连接报错:Cannot currently show the desktop 查看VNC Server状态正常,只是有报错 pi@raspberrypi:~ $ syste ...

  7. hive中beeline连接报错 User: root is not allowed to impersonate root:已解决

    第一种:hive中beeline连接报错 Error: Could not open client transport with JDBC Uri: jdbc:hive2://node-4:10000 ...

  8. Navicat客户端PostgreSQL连接报错:Could not connect to server:Connection refused(0x00002740/10061)

    Navicat客户端PostgreSQL连接报错:Could not connect to server:Connection refused(0x00002740/10061) 遇到这样的问题应该怎 ...

  9. pl/sql dev连接报错Access violation at address 67614F04 in module 'oranls11.dll'

    这个可能是因为你的客户端安装了多个Oracle 软件导致, 还有一种可能是本地Oracle版本过低,连接的Oracle数据库版本过高. 这里排除第二种可能. 解决办法:  打开你的PL/SQL Dev ...

最新文章

  1. 学习鸟哥的Linux私房菜笔记(3)——基础使用
  2. 如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)
  3. 《软件工程导论》课后习题解答
  4. (四)深入浅出TCPIP之TCP三次握手和四次挥手(下)的抓包分析
  5. Angular之ngx-permissions的控制视图访问
  6. 优化了破网站的搜索功能
  7. linux 内存使用率_我的内存都去哪里了?| 美创运维日记
  8. 【FLink】Flink checkpoint 实现数据连续计算 恢复机制 案例实战
  9. 持久内存开发套件(Persistent Memory Development Kit-PMDK) - pmem.io: PMDK
  10. 开发imageJ插件失败经验
  11. 关于灵魂,意识,自我和死亡
  12. 遮羞布被撕,业界反思5G的冒进,运营商重视挖掘现有5G网络的潜力
  13. java tire树_谢特——后缀数组+tire 树(示例代码)
  14. 18、ListView显示图片
  15. c语言输出笑脸('\1')
  16. SolidWorks Simulation 2014有限元分析培训视频教程
  17. 数字孪生:如何撑起一个万亿市场的产业变革?
  18. c++中的typeid和typeof
  19. 太准了这十个心理暗示
  20. 【报告分享】2020美好城市指数:短视频与城市繁荣关系白皮书(附下载)

热门文章

  1. 文件夹只读属性不能更改如何去除
  2. Java探针技术详解
  3. 当笔记本是无线连接网络时,如何正确配置virtualbox的上网问题
  4. 普通话考试易错字、鼻音、HF发声
  5. Java面试题十篇基本问题,学完这些我就不信拿不到offer
  6. STM32采集正弦幅值
  7. keybindings.json
  8. python如何输入n个数字_如何在列表中逐个输入n个数字?
  9. C语言 输入n,输出n各位数字之和
  10. 基于Python多元线性回归、机器学习、深度学习在近红外光谱分析中的实践应用培训班