出现问题
在连接到远程TD数据库后,查询语句出现问题:
select * from tablename;
报错:
Unable to resolve FQDN
然后在taosdb网站上看到出错解决方案:
TD网站的提示
遇到错误“Unexpected generic error in RPC”或者“Unable to resolve FQDN”,我怎么办?
如下:
产生这个错误,是由于客户端或数据节点无法解析 FQDN(Fully Qualified Domain Name)导致。对于 TAOS Shell 或客户端应用,请做如下检查:
- 请检查连接的服务器的 FQDN 是否正确,FQDN 配置参考:一篇文章说清楚 TDengine 的 FQDN
- 如果网络配置有 DNS server,请检查是否正常工作
- 如果网络没有配置 DNS server,请检查客户端所在机器的
hosts
文件,查看该 FQDN 是否配置,并是否有正确的 IP 地址 - 如果网络配置 OK,从客户端所在机器,你需要能 ping 该连接的 FQDN,否则客户端是无法连接服务器的
- 如果服务器曾经使用过 TDengine,且更改过 hostname,建议检查
data
目录的dnodeEps.json
是否符合当前配置的 EP,路径默认为/var/lib/taos/dnode
。正常情况下,建议更换新的数据目录或者备份后删除以前的数据目录,这样可以避免该问题。 - 检查
/etc/hosts
和`/etc/hostname
是否是预配置的 FQDN
纠结
我在本地适用taosc,客户端查询数据。
相应的taos.cfg和本地host配置文件都已经相应写好,有些sql语句没有问题,就是在select上报错。
客户端使用服务端的ip和本地定义的hostname都可以ping通。
我到现在也没有搞清楚,这个FQDN所对应的hostname,是只要本地客户端有这个映射定义即可,还是说要在Taosc客户端与在Taosd服务器这边对应的FQDN的hostname也需要一致?
有没有更加详细具体的说明??????
参考
参考这个:
解决问题
说到底,还是FQDN配置出错。
由于我在远端连接TD,以至于并不清楚那个firstEP的FQDN的名称是怎么起的名称。我在本地比较随意地给firstEP起了个名称,包括在hosts和taos.cfg文件中进行了同样的设置。
1)如在hosts文件中:
xxx.xxx.xxx.xxx hostname1
2)在taos.cfg文件中:
firstEP hostname1:6030
在以上配置之后,实际上,运行taos的客户端时,这个时候尽管用了和作为firstEP的实际dnode不一致的hostname1,仍然是可以连接到taosd服务器的。不知道是不是所有的版本都这样还是2.6的是这样。
以上的配置,在运行taos客户端时,可以查询表名等,但是无法操作select * from ...查询,会出现以上的标题里的问题。问题就是hostname1和实际dnode的名称不一致。以下操作需要通过上面1和2的配置,在连接到taosd服务器之后完成。
taos> taos -h hostname1 -u userNamexxx -p 会要求输入密码
taos> show dnodes;
这个时候就可以看到所有的dnodes,将作为firstEP节点的dnode名称选出来,作为新的hostname填入hosts和taos.cfg文件中,替换院校的hostname1。推出taos,然后重新运行taos客户端,此时连接远端的taosd服务器之后,就可以进行正常的查询操作了。
实际上打个电话问一下同事也可以了解当前的配置名称,但是周末,谁有好意思打搅别人呢?
或者按道理,在同事知道你要使用客户端连接数据库的时候,可以提前告诉你,但是我第一次使用,完全不了解需要多少接口信息啊。