emqx_auth_mnesia启动不了

环境信息

  • EMQ X 版本:docker安装的,镜像emqx/emqx:4.2.5
  • 操作系统及版本:centos7.6
  • 其他

问题描述

使用这个链接里面的 Mnesia 认证配置1883mqtt 认证,发现 emqx_auth_mnesia 启动不了,报配置文件
parse_config_file_failed,已经是按照链接来配置的为什么还会错?文档没及时更新吗?还是我配置错了

配置文件及日志

以下是按照文档一模一样配置,启动 emqx_auth_mnesia 插件就报错了

[root@iZwz98e86k8ndv02bx5dowZ emqx]# cat plugins/emqx_auth_mnesia.conf
## Value: plain | md5 | sha | sha256
auth.mnesia.password_hash = sha256
## clientid 认证数据
auth.client.1.clientid = admin
auth.client.1.password = admin

## username 认证数据
auth.user.2.username = admin
auth.user.2.password = admin

image


## Examples:
##auth.mnesia.1.login = admin
##auth.mnesia.1.password = public
##auth.mnesia.1.is_superuser = true
##auth.mnesia.2.login = feng@emqtt.io
##auth.mnesia.2.password = public
##auth.mnesia.2.is_superuser = false
##auth.mnesia.3.login = name~!@#$%^&*()_+
##auth.mnesia.3.password = pwsswd~!@#$%^&*()_+
##auth.mnesia.3.is_superuser = false

## Password hash.
##
## Value: plain | md5 | sha | sha256 
auth.mnesia.password_hash = sha256

## Auth as username or auth as clientid.
##
## Value: username | clientid
auth.mnesia.as = username

这个是4.2.5的配置项

image
我这样配置了还是无法使用admin/admin通过认证(不起作用),但是admin/public却正常,请问还有哪里配置了密码是public?

你可以参考下这个文档来删除已经存在的用户信息:Mnesia 认证 | EMQ Docs
一旦通过配置文件启动过一次之后,这些用户信息就被写入到内部数据库中,下次启动时配置文件中的同名用户信息不会覆盖已经存在的用户信息。

接口都错误。。。有什么办法可以把用户认证信息覆盖

方便看下你是怎么调用的吗?接口是没问题的,你可以用 Curl 命令或者是 Postman 来构造 HTTP 请求。
不行还有一个方法就是清空 data/mnesia 目录,但同时会清空其他像规则引擎 Resource 配置等信息。

我先问一下,这些接口是用1883还是18083去访问
api/v4/auth_clientid
api/v4/auth_username
例如服务器ip地址是172.18.216.100
那查看已经添加的认证数据是怎么请求的?麻烦举个例子

按照官方文档应该是8081,不过有些接口18083也能请求到。

我就是用18083请求的报404,和我在emqx_dashboard点那个接口一样报错,就是之前给你发的截图

image

浏览器地址栏是get请求,这是post请求。

你可以用 Curl 命令或者使用 Postman工具 来构造 HTTP 请求。

查询就是用GET

端口用8081

好的,我试下
8081是API用的端口吗