Docker部署的InfluxDB使用CURL创建数据库报错如何解决
报错原因
你部署的是InfluxDB 2.x及以上版本,该版本已废弃1.x版本中InfluxQL语法的CREATE DATABASE操作,因此会返回not implemented: CREATE DATABASE报错。
解决方案
下面提供三种可选解决方式,按需选择即可:
- 方案1:使用2.x版本原生逻辑创建存储桶(对应1.x版本的数据库概念)
2.x版本中用**存储桶(bucket)**替代了旧版的数据库+保留策略组合,可通过如下curl命令创建名为selenium的存储桶:
其中curl -i -XPOST http://localhost:8086/api/v2/buckets \ --header "Authorization: Token MY_INFLUX_TOKEN" \ --header "Content-Type: application/json" \ --data '{ "orgID": "你的组织ID", "name": "selenium", "retentionRules": [{"type": "expire", "everySeconds": 2592000}] }'everySeconds为数据保留时长,单位为秒,示例值2592000对应30天,设置为0代表永久保留;orgID替换为你部署InfluxDB时设置的组织对应ID。 - 方案2:开启1.x API兼容模式,适配旧命令
启动InfluxDB Docker容器时添加以下两个环境变量,即可兼容旧版CREATE DATABASE语法:
容器重启后你原来使用的curl命令即可正常执行。INFLUXD_V1_AUTH_ENABLED=true INFLUXD_QL_FOR_WRITE_ENABLED=true - 方案3:切换为1.x版本InfluxDB镜像
如果你无需使用2.x版本新特性,直接拉取1.x稳定版镜像部署即可,原有命令无需修改:docker pull influxdb:1.8
内容的提问来源于stack exchange,提问作者Arun
相关产品推荐
相关产品推荐

