emq--添加mysql认证

线上使用建议关闭 匿名登陆
打开安装目录下的\etc\emqx.conf文件
修改 allow_anonymous = false
重启 emq ,即可
emqx restart

2 修改mysql认证插件的配置文件 /etc/plugins/emqx_auth_mysql.conf

## 核心配置如下

## 服务器地址
auth.mysql.server = 127.0.0.1:3306

## 连接池大小
auth.mysql.pool = 8

auth.mysql.username = root

auth.mysql.password = 123456

auth.mysql.database = mqtt

auth.mysql.query_timeout = 5s

3 配置 加盐规则与哈希方法 [可选],默认是sha256

## Password hash.
##
## Value: plain | md5 | sha | sha256 | bcrypt
auth.mysql.password_hash = md5,salt

认证 SQL(auth_query)[可选],设置了加盐等,必须操作

进行身份认证时,EMQ X 将使用当前客户端信息填充并执行用户配置的认证 SQL,查询出该客户端在数据库中的认证数据。

auth.mysql.auth_query = select password,salt from mqtt_user where username = '%u' limit 1

你可以在认证 SQL 中使用以下占位符,执行时 EMQ X 将自动填充为客户端信息:

  • %u:用户名
  • %c:Client ID
  • %C:TLS 证书公用名(证书的域名或子域名),仅当 TLS 连接时有效
  • %d:TLS 证书 subject,仅当 TLS 连接时有效

你可以根据业务需要调整认证 SQL,如添加多个查询条件、使用数据库预处理函数,以实现更多业务相关的功能。但是任何情况下认证 SQL 需要满足以下条件:

  1. 查询结果中必须包含 password 字段,EMQ X 使用该字段与客户端密码比对
  2. 如果启用了加盐配置,查询结果中必须包含 salt 字段,EMQ X 使用该字段作为 salt(盐)值
  3. 查询结果只能有一条,多条结果时只取第一条作为有效数据

 5 创建库和表,认证/超级用户表

CREATE TABLE `mqtt_user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(100) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  `salt` varchar(35) DEFAULT NULL,
  `is_superuser` tinyint(1) DEFAULT 0,
  `created` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `mqtt_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

6 在emq的控制台开启插件,并重启emq服务

7 根据上述配置的密码规则,添加记录

密码在线加密,如下图所示,将密码添加到mysql记录中即可 (:及后面不用复制)
https://www.cmd5.com/hash.aspx?s=123456

8 开始测试连接

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值