运行在ERR中的InfluxDB v2.0:收到来自服务器的状态代码401



我正试图在本地机器上使用InfluxDB运行一些实验,但由于某种原因,auth无法工作(或者我无法使其工作)。

我创建了一个docker网络运行:

docker network create --driver bridge influxdb-telegraf-net

稍后,我只需将容器的8086绑定到localhost,为数据文件附加一个卷,就差不多了:

docker run -d --name=influxdb -p 8086:8086 -v /tmp/influx:/root/.influxdb2 --net=influxdb-telegraf-net influxdb:2.0

然后,我运行以下命令在容器内设置InfluxDB:

docker exec -it influxdb influx setup

我填写用户名、密码、组织。。。等等

然而,当我";完成";设置完成后,我使用本地流入客户端创建一个新的数据库,但我运行的每个命令都返回:ERR: received status code 401 from server

例如:

myuser@mymachine:~$ influx
Connected to http://localhost:8086 version 2.0.9
InfluxDB shell version: 1.6.7~rc0
> show databases
ERR: received status code 401 from server

我不确定这个问题是从哪里来的。我尝试运行auth,但在填写用户名和密码后,它仍然返回相同的错误。

我确信它必须是一些小而简单的细节,因为我没有做任何花哨的事情。

TIA!

编辑

运行docker inspect influxdb-telegraf-net:时

myuser@mymachine:~$ docker inspect influxdb-telegraf-net 
[
{
"Name": "influxdb-telegraf-net",
"Id": "33afd698984c851c86e36e083522acfac5310a87313691c047826adb073a6065",
"Created": "2022-06-25T10:15:06.630948524+01:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.20.0.0/16",
"Gateway": "172.20.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"e1ddbd36321b798a9343b3061d73ab438d012859134f73b7d072027729694917": {
"Name": "influxdb",
"EndpointID": "08e5698c04ea2532de6880946ed90c7c80e274b8920f4ce560b7c63f4a4f0f7a",
"MacAddress": "00:00:aa:00:00:00",
"IPv4Address": "172.20.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]

注意为了以防万一,我将MacAddress更改为一个伪添加。

好吧,在检查了版本之后(我应该做的第一件事!)我发现:

myuser@mymachine:~$ /usr/bin/influx --version
InfluxDB shell version: 1.6.7~rc0

myuser@mymachine:~$ docker exec -it influxdb /bin/bash
root@e1ddbd36321b:/# influx version
Influx CLI 2.0.9 (git: d1233b7951) build_date: 2021-10-01T21:09:53Z

所以,是的,这基本上就是问题所在。客户端和数据库的版本必须匹配。

请记住,InfluxDB 2.0或更高版本没有允许您输入DB CLI的现成CLI。您需要根据第19986期自行编译。