工作日志,error parsing query: unable to find time zone

工作日志,error parsing query: unable to find time zone

Windows 系统使用influxdb数据库,在执行查询语句时提示 ERR: error parsing query: unable to find time zone Asia/Shanghai 的错误。因为influxdb在non-unix系统(例如windows)上不能正常使用tz()语句。网上都说安装go环境和重启Influxd即可解决问题。可是我也安装了go,也配置了环境变量,也重启了influxd,依然报相同的错误。

填坑

先说解决方法:安装golang,配置path和GOROOT环境变量,并且重启电脑。ITDragon 因为没有配置GOROOT,折腾了一天的时间。

填坑步骤

第一步:下载window版本的golang, 下载地址https://dl.google.com/go/go1.13.1.windows-amd64.msi

第二步:安装golang,并配置环境变量,包括GOROOT 和path 系统环境变量,重启电脑

第三步:重启influxd

填坑时的思路

  1. 开始:按照网上教程安装go,并配置了path环境变量。重启influxd。(失败,意料之中,(︶^︶)
  2. 然后:分析为什么安装go,得知influxdb底层是通过go语言实现,使用tz语句需要的时间库在非Unix系统上可能不存在。而go的安装目录中有时间库C:\Go\lib\time\zoneinfo.zip。(看到曙光,<( ̄︶ ̄)↗[GO!])。
  3. 接着:分析安装go的流程,是否有遗漏项。的确发现没有配置GOROOT。可能需要指定安装目录才能确定时间库的位置?抱着疑虑配置了GOROOT。因为没有重启电脑,所以配置没有生效。(开始怀疑自己的判断,(⊙_⊙)?)。
  4. 接着:分析安装influxdb的版本,试了几个版本皆以失败告终(濒临崩溃,(;´༎ຶД༎ຶ`))。
  5. 接着:分析操作系统的版本,打开了虚拟机,启动了之前安装好的window server 2012 r2 。 结果启动失败,提示 vcpu-0:VERIFY vmcore/vmm/main/cpuid.c:386 bugNr=1036521 (祸不单行,(╬▔皿▔)凸)。
  6. 最后:重启电脑,修改BIOS的配置,开启虚拟技术。结果好了 (╯‵□′)╯︵┻━┻ 。经过不断地测试,确定是因为添加GOROOT 系统环境变量后没有重启电脑导致前面的失败。

坑的教训

配置了环境变量,考虑重启???ITDragon最讨厌的就是重启。一般机器都开了五六个IDEA,一堆数据库连接工具,一堆通讯软件,POSTMAN,MQTTBOX,等。太南了 🤣🤣🤣🤣🤣🤣

来源go官网

The installer should put the c:\Go\bin directory in your PATH environment variable. You may need to restart any open command prompts for the change to take effect.

参考文档:
https://dotnetplusplus.com/2017/10/18/time-zone-and-group-by-day-in-influxdb/

https://github.com/influxdata/influxdb/issues/10196

posted @ 2019-09-30 10:01  ITDragon龙  阅读(3276)  评论(1编辑  收藏  举报