工作日志,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
- 开始:按照网上教程安装go,并配置了path环境变量。重启influxd。(失败,意料之中,()^)))
- 然后:分析为什么安装go,得知influxdb底层是通过go语言实现,使用tz语句需要的时间库在非Unix系统上可能不存在。而go的安装目录中有时间库C:\Go\lib\time\zoneinfo.zip。(看到曙光,)。
- 接着:分析安装go的流程,是否有遗漏项。的确发现没有配置GOROOT。指定安装目录,就可以确定时间库的位置?抱着疑虑配置了GOROOT,因为没有重启电脑,所以配置没有生效。(怀疑自己的判断,**(⊙_⊙)?**)。
- 接着:分析安装influxdb的版本,试了几个版本皆以失败告终(濒临崩溃,)。
- 接着:分析操作系统的版本,打开了虚拟机,启动了之前安装好的window server 2012 r2 。 结果启动失败,提示
vcpu-0:VERIFY vmcore/vmm/main/cpuid.c:386 bugNr=1036521
(祸不单行,)。 - 最后:重启电脑,修改BIOS的配置,开启虚拟技术。结果好了 。经过不断地测试,确定是因为添加GOROOT 系统环境变量后没有重启电脑导致前面地失败。
来源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
来源:博客园
作者:ITDragon龙
链接:https://www.cnblogs.com/itdragon/p/11608812.html