服务搭建官方文档:https://docs.emqx.io/broker/v3/cn/install.html ,文档很详细,有各个版本的安装教程,一步一步来就可以了
本人用的是docker安装使用的版本是v3.1.0,本文主要讲述使用docker安装的一些注意项
【1】默认的emq是不限制连接的,任何人只要知道了地址都可以连接emq服务器,允许publish、subscribe topic。因此需要认证和鉴权,这里选用的是mysql的认证和鉴权。
【2】要配置mysql认证和鉴权首先要把匿名访问给关了,vi /opt/emqx/etc/emqx.conf 修改 mqtt.all_anonymous = false。比较坑的是emq配置文件的修改必须要重启才生效(在dashboard中修改的配置无需重启就能生效),因此使用docker的话要把配置项写到env里,关于docker版配置项的说明可查看官方的github
【3】容器启动后需要通过dashboard开启mysql认证插件以及配置相关参数(参数的配置也可以通过env配置好),默认表和表数据的生成参考官方文档,插件的配置基本不需要修改,只要注意一下mysql的地址 、mysql的用户名、密码以及表mqtt_user、mqtt_acl所在库。
【4】在mqtt_acl表中默认的所有用户都允许发布所有的topic,如果有限制需要自行添加acl规则。注意,如果user是super user会无视acl表里的规则。
【5】如果开启mysql插件一直失败,可以检查下mysql地址,mysql用户名密码是否正确,emq服务器和mysql所在服务器是否能通信
当一切都配置好后,只会允许在mqtt_user表中的用户才能连接emq服务器,其他连接请求都会被拒绝