遇到 “failed to connect server” ,我该怎么办?

原创
2020/03/27 17:00
阅读数 7.2K

我是涛思数据的运营同学,第一次看到这个问题,是在我负责的一个监控后台,发现有用户通过这个问题来到了我们官网。起初我以为只是个例,并且在官网的FAQ中,有关于此问题的详细解答,我私认为自己的SEO做得还不错,遇到这个问题的用户,随便搜一搜就能定位到解决办法,从运营角度来说,It’s not a big deal。


直到我们开始筹划「每周精选Issue」这个栏目,在我日常Push技术支持同学给我一个具有代表性的问题时,他跟我说:那就从“failed to connect server”开始吧。


然后我好奇地打开了TDengine的GitHub主页,搜了一下这个问题,竟然有50个之多,并且“failed”方式不尽相同。虽然技术上的问题我有心无力,但我很能理解大家想解决这个问题的迫切心情,这就好像我打算吃火锅,准备好了底料、食材和蘸料,也准备好了锅,然后发现锅没有电……我设身处地地想了一下,确实,很崩溃。


那么,好的,既然你诚心诚意地发问了,那我就认认真真地告诉你,「每周精选Issue」的第一期就从“failed to connect server”开始吧!


为什么会出现错误“failed to connect server”?

仔细看了一下GitHub上关于此问题的讨论,暂时把真的是一个“bug”的情况抛开不谈,大多数情况下报此错误,皆是因为你忽视了一些重要的事情。


比如,来自编号#1034,「自问自答」的Issue:java.sql.SQLException: TDengine Error: failed to connect to server。


首先表扬一下这位可爱的用户,问题叙述的很完整,描述了操作环境、操作过程、并且上传了日志,为很多用户展示了“如何递交一个Issue”的良好示范……然后,一天之内,他自己关闭了该问题。


他说:找到原因了,我linux服务器上的版本是手工编译安装的是1.6.5,客户端win10用的是1.6.4,因此造成连接不上。(当然,研发同学说,他们正在努力,不久之后,服务器和客户端版本不一致,也可以兼容工作,那我们就拭目以待吧!)


看看,如果提前注意到服务器和客户端的版本不一致,是不是就能让自己的体验过程更顺畅呢。


再比如,来自编号#1090,「体验过时版本」的Issue:Query interrupted (failed to connect to server) 。


这位用户的表中,有一个float字段,在终端查询时报错,但将该字段类型改成double就可以拿到结果,因此他怀疑,TDengine是不是不支持针对float的某些查询。


一番问答下,该问题终于得到解决,原来,这个问题确实是之前某个版本中的一个bug,但早已在新版本中得到了修复,而这位积极提bug的小伙伴却还在体验已经过时的旧版本,踩了前人已经踩过的坑。


遇到“failed to connect server”,有没有什么办法去排查问题呢?

当然可以。我问了我们的技术支持同学,他有一套解决这类问题的万能方法,只需两步,在此不吝分享。


第一步:检查客户端和服务器版本是否一致。(正如之前所说,不久之后,这个步骤就完全不需要了。)


第二步:客户端遇到连接故障,按如下步骤进行检查:
  1. 在服务器上,执行 systemctl status taosd 检查taosd运行状态。如果没有运行,启动taosd

  2. 确认客户端连接时指定了正确的服务器IP地址,ping服务器IP,如果没有反应,请检查你的网络

  3. 检查防火墙设置,确认TCP/UDP 端口6030-6039 是打开的

  4. 对于Linux上的JDBC(ODBC, Python, Go等接口类似)连接,确保libtaos.so在目录/usr/local/lib/taos中,并且/usr/local/lib/taos在系统库函数搜索路径LD_LIBRARY_PATH中

  5. 对于windows上的JDBC, ODBC, Python, Go等连接,确保driver/c/taos.dll在你的系统搜索目录里 (建议taos.dll放在目录 C:\Windows\System32)

  6. 如果仍不能排除连接故障,请使用命令行工具nc来分别判断指定端口的TCP和UDP连接是否通畅

    • 检查UDP端口连接是否工作:nc -vuz {hostIP} {port}

    • 检查服务器侧TCP端口连接是否工作:nc -l {port}

    • 检查客户端侧TCP端口链接是否工作:nc {hostIP} {port}


如果按照这两步检查并执行下来,依然没有解决你的问题,那你可能真的遇到了bug,不用担心,我们还有终极万能法宝,到GitHub上,将此问题进行反馈,当然,需要你附上操作环境、操作过程和日志,越详细越好,向我们的研发工程师寻求帮助。


好了,本期「每周精选Issue」就到这里了,能真正帮助到你,就是这个栏目存在的最大意义。


欢迎文末留言,说出体验TDengine的过程中,那些让你崩溃的问题吧~


栏目编辑:夏昕

技术支持:苏晓慰


点击阅读原文,体验TDengine!

本文分享自微信公众号 - TDengine(taosdata_news)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部