• JAVA客户端使用账号密码调用influxdb2报错:{“code“:“unauthorized“,“message“:“Unauthorized“}


    问题:JAVA客户端访问influxdb2报错

    说明:当前influxdb版本:2.6.1
    使用依赖:

    
            org.influxdb
            influxdb-java
            2.10
       
    
    • 1
    • 2
    • 3
    • 4
    • 5

    对应代码,使用 账号密码 访问:

    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);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    执行发现报错: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
    • 2
    • 3
    • 4

    再次调用就通了。

    未结问题

    1、使用APIToken生成了所有权限的Token,加入到客户端中,可以查询到用户列表,但是创建用户时,却报错,也是说401没权限。
    Token权限:
    在这里插入图片描述
    创建用户时报错:
    在这里插入图片描述
    查询官网说是Token不是操作权限Token,然后查了下操作权限Token怎么创建,说要有操作权限的token才能创建,那么问题来了,第一个操作权限token怎么来还有UI界面生成的token明明说了有所有权限,为什么没操作权限

    欢迎小伙伴来解答这些问题。反正我已经放弃了。

  • 相关阅读:
    fastjson知多少
    如何提升自己?
    初中数学三角函数
    【CSS】基础选择器,包括标签选择器、类选择器、id选择器和通配符选择器...
    Git的一些常用概念与操作方法分享
    双向链表遍历以及增删改查操作(思路分析) [数据结构][Java]
    数据结构与算法之动态规划算法(DP)
    QtCreator按顺序编译多个子项目
    珂朵莉树 学习笔记
    自然语言处理学习笔记-lecture06-词法分析与词性标注
  • 原文地址:https://blog.csdn.net/qinqigang/article/details/134248424