服务器重启或docker重启,导致emqx的Dashboard的密码重置为public,emqx配置的授权内容恢复为默认内容(已解决)

问题描述:

        服务器重启或者docker重启,会导致emqx的可视化页面,Dashboard配置的密码,恢复为默认的密码,并且配置的授权也恢复为默认内容

探索过程:

        一开始安装的eqmx为5.0.24,还是以为是的版本太高、不稳定、有bug。重新安装低版本的emqx还是未能解决。然后开始怀疑是否安装的不对,又安装了好多遍,还是不行。最后一番搜索,找到了解决问题。

解决过程:

        安装emqx

# 拉取镜像
docker pull emqx/emqx

# 创建目录,进行目录挂载
mkdir -p /docker/emqx/{etc,lib,data,log}

# 运行一个demo
docker run -d --name emqx emqx/emqx

# 将demo中的文件拷贝出来
docker cp emqx:/opt/emqx/etc /docker/emqx
docker cp emqx:/opt/emqx/lib /docker/emqx
docker cp emqx:/opt/emqx/data /docker/emqx
docker cp emqx:/opt/emqx/log /docker/emqx

# 修改目录权限
chown -R 1000:1000 /docker/emqx/
chmod -R 755 /docker/emqx/

# 删除demo
docker stop emqx && docker rm emqx

# 正式运行
docker run -d --name emqx --restart=always \
-p 1883:1883 \
-p 8883:8883 \
-p 8083:8083 \
-p 8084:8084 \
-p 8081:8081 \
-p 18083:18083 \
-v /etc/localtime:/etc/localtime \
-v /docker/emqx/etc:/opt/emqx/etc \
-v /docker/emqx/lib:/opt/emqx/lib \
-v /docker/emqx/data:/opt/emqx/data \
-v /docker/emqx/log:/opt/emqx/log \
-e EMQX_NODE_NAME=emqx@node \
emqx/emqx

上述重点是加上 -e EMQX_NODE_NAME=“随便取个名字”。用这个环境变量固定 EMQX 节点名称,加上以后Dashboard密码就不会重置。

安装好emqx后,配置Dashboard密码、配置授权信息后。重启服务器,再次打开Dashboard。Dashboard密码没有再出现重置问题。但是授权信息仍然会恢复成默认。

进入到 /docker/emqx/etc挂载目录下查看,看到emqx.conf和acl.conf

查看acl.conf文件

 再看emqx.conf文件的最后部分

 也就是说,acl.conf是默认的授权文件,如果自定义了授权内容,授权内容会保存在data/authz/acl.conf,并且用这个文件作为授权文件。现在问题是服务器重启后,emqx重新使用了默认文件,那直接把自定义的授权内容直接写在默认的acl.conf文件不就可以了?

实践后发现,这个简单粗暴的方法可行!至此,问题解决。

第一次发布文章,如果帮助到了你,麻烦点个赞,鼓励一下,谢谢!!

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要修改docker emqx密码,你可以按照以下步骤进行操作: 1. 进入emqxdocker容器内:使用命令`docker exec -it emqx /bin/sh`进入容器的命令行界面。 2. 修改emqx.conf文件:在容器内部,使用编辑器打开emqx.conf文件,该文件位于etc目录中。你可以使用命令`vi /opt/emqx/etc/emqx.conf`来编辑该文件。 3. 修改认证方式为mysql:在emqx.conf文件中,找到`auth.mysql.password_hash`和`auth.mysql.password_hashed`这两个配置项,将其设为你想要的密码。你可以使用命令`auth.mysql.password_hash = your_password`和`auth.mysql.password_hashed = true`来修改这两个配置项。 4. 保存并退出:在编辑器中保存修改后的emqx.conf文件,并退出编辑器。 5. emqx容器:使用命令`docker restart emqx`来emqx容器,使修改生效。 请注意,以上步骤是基于emqx版本为v3.0.1的情况下进行的修改。如果你使用的是其他版本的emqx,请根据相应的版本文档进行操作。 #### 引用[.reference_title] - *1* [Docker部署mqtt服务器(emqx),密码认证](https://blog.csdn.net/wflsyf/article/details/122699883)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [服务器docker导致emqxDashboard密码publicemqx配置授权内容恢复默认内容(已...](https://blog.csdn.net/qq_48249417/article/details/131589080)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Docker配置emqx环境(win11)](https://blog.csdn.net/weixin_61908666/article/details/127930238)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值