问题:JAVA客户端访问influxdb2报错
说明:当前influxdb版本:2.6.1
使用依赖:
<dependency>
<groupId>org.influxdb</groupId>
<artifactId>influxdb-java</artifactId>
<version>2.10</version>
</dependency>
对应代码,使用 账号密码 访问:
public static void main(String[] args) {
InfluxDB influxDB;
String url = "http://192.168.xxx.xxx:8086/";
//账号密码为登录UI界面的账号密码
influxDB = InfluxDBFactory.connect(url, "root", "xxx");
String command = "select * from demo";
String database = "b01";
QueryResult result = influxDB.query(new Query(command, database, true));
System.out.println(result);
}
执行发现报错:InfluxDBException:{“code”:“unauthorized”,“message”:“Unauthorized”}
根本原因:JAVA客户端需要对Bucket(数据库)进行读写权限授权。
//客户端创建配置,token由UI界面上APIToken创建即可,权限都给。
./influx config create --config-name config004 --host-url "http://192.168.xx.xx:8086" --token "4bmVWxaB0z-J8CND-q3jOVynOkIAZgMAfGpx_7qikUpbfS6-AgffZcOXBYNS6aYu-LHoD019I6y_QZTa_a3NOw==" --active
//进行授权(用户-数据库权限),参数自行替换,在UI界面中查询即可
./influx v1 auth create --org-id {orgId} --read-bucket {bucketId} --write-bucket {bucketId} --username root
再次调用就通了。
未结问题
1、使用APIToken生成了所有权限的Token,加入到客户端中,可以查询到用户列表,但是创建用户时,却报错,也是说401没权限。
Token权限:
创建用户时报错:
查询官网说是Token不是操作权限Token,然后查了下操作权限Token怎么创建,说要有操作权限的token才能创建,那么问题来了,第一个操作权限token怎么来?还有UI界面生成的token明明说了有所有权限,为什么没操作权限?
欢迎小伙伴来解答这些问题。反正我已经放弃了。