相关文章推荐
坏坏的茴香  ·  @nestjs/axios post ...·  6 月前    · 
干练的火锅  ·  Issues when upgrading ...·  8 月前    · 
飘逸的作业本  ·  Facing problem while ...·  1 年前    · 

1.在Ubuntu中下载Docker

apt install docker.io

2.下载mysql5.7到Ubuntu中
docker pull mysql:5.7

3.查看下载的mysql镜像
docker images

4.启动一个mysql容器
docker run --name my_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d  mysql:5.7

5.查看启动的容器
docker ps

配置效果图如下

第二步,使用Navicat连接阿里云服务器中的Mysql 5.7

打开Navicat界面,左上角点击连接,选择MYSQL连接,按下图输入服务器公网IP和服务器中Mysql5.7的root用户和密码。随后去阿里云服务器的防火墙那里开放MySql3306端口。

双击连接好的数据库,看看是否能正常进入,正常进入是不会出现任何报错的。

第三步: EMQX控制台使用Mysql认证,连接阿里云服务器中的Mysql5.7

按照上一篇教程,在网页输入IP+18083,进入EMQX控制台,注意是EMQX5.0控制台,版本不同,控制台功能界面也不一样,在访问控制里,进入认证界面

点击右上角,创建一个认证

选择第一个,使用Passowrd-Based认证,点击下一步

选择Mysql数据源,我已经创建过Mysql认证了,不能再次选择

数据库:刚才我们在Navicat中连接到了阿里云服务器中的Mysql5.7,填的就是,我们在这里面创建一个数据库

不出意外的话,这个时候你点击创建,会显示下面这个页面,一直在连接中

那是因为,还需要修改sql语句的关键字名称,原本的应该是password_hash,把它后面的_hash删掉就行了。密码加密方式和加盐方式也修改成下面,方便后续在MQTTX中使用Mysql5.7中创建的表格中的用户和密码连接EMQX,plain是明文不加密

更新一下,就显示认证成功了

第四步:在Navicat中创建用户表格

执行官方提供的创建表格命令,在Navicat中创建一个数据库,再在数据库中新建一个查询,将如下语句复制粘贴进去

DROP TABLE IF EXISTS `mqtt_acl`; CREATE TABLE `mqtt_acl` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `allow` int(1) DEFAULT NULL COMMENT '0: deny, 1: allow', `ipaddr` varchar(60) DEFAULT NULL COMMENT 'IpAddress', `username` varchar(100) DEFAULT NULL COMMENT 'Username', `clientid` varchar(100) DEFAULT NULL COMMENT 'ClientId', `access` int(2) NOT NULL COMMENT '1: subscribe, 2: publish, 3: pubsub', `topic` varchar(100) NOT NULL DEFAULT '' COMMENT 'Topic Filter', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; LOCK TABLES `mqtt_acl` WRITE; INSERT INTO `mqtt_acl` (`id`, `allow`, `ipaddr`, `username`, `clientid`, `access`, `topic`) VALUES (1,1,NULL,'$all',NULL,2,'#'), (2,0,NULL,'$all',NULL,1,'$SYS/#'), (3,0,NULL,'$all',NULL,1,'eq #'), (4,1,'127.0.0.1',NULL,NULL,2,'$SYS/#'), (5,1,'127.0.0.1',NULL,NULL,2,'#'), (6,1,NULL,'dashboard',NULL,1,'$SYS/#'); UNLOCK TABLES; DROP TABLE IF EXISTS `mqtt_user`; 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=MyISAM DEFAULT CHARSET=utf8mb4;

在表格中添加等会用于MQTTX测试的用户和密码,数据库名记得和EMQX认证Mysql中设置的数据库名一致,不一致的话去EMQX控制台那里改成和你创建的数据库名一样

第五步:使用MQTTX测试连接

设置连接,填入刚才在数据库中添加的用户和密码

连接后,会在EMQX控制台看到连接信息,把连接密码改错会显示有多少次错误连接,正确连接也会显示有多少次正确连接

创建 数据库 你可以 使用 任何自己喜欢的 客户端,创建好相应的 数据库 。这里用的是 MySQL 自带的命令行客户端,打开 MySQL 的控制台,如下所示,创建一个名为 emqx 认证 数据库 ,并切换到 emqx 数据库 mysql > create database emqx ;Query OK, 1 row affected (0.00 sec) mysql > use emqx ;Database ... 将mqtt消息保存到 mysql 数据表格的SQL示例 INSERT INTO data(dev_id,voltage,current,temperature,slot,curr_temp,target_temp,mode,menu,run,seg,P,I,D,arrived) VALUES(${clientid},${payload.voltage 插入语句: INSERT INTO `mqtt_user`.`mqtt_user`(`id`, `username`, `password_hash`, `salt`, `is_superuser`, `created`) VALUES (3, 'lieh3', SHA2(concat('lieh3', 'yxq'), 256), 'yxq', 0, NULL);可通过select SHA2(concat('lieh3', 'yxq'), 256) 查看生成的密码。盐值 salt:yxq。 文章目录[EMQ X 客户端登陆 认证 介绍]()关于 MySQL 认证 环境准备安装 MySQL 创建 数据库 创建表EMQ X MySQL 认证 配置 MySQL 连接信息密码加盐规则与哈希方法如何生成 认证 信息启动 MySQL 认证 插件关闭匿名 认证 重启客户端测试问题 EMQ X 客户端登陆 认证 介绍 身份 认证 是大多数应用的重要组成部分,MQTT 协议支持用户名密码 认证 ,启用身份 认证 能有效阻止非法客户端的连接。 EMQ X 中的 认证 指的是当一个客户端连接到 EMQ X 的时候,通过服务器端的配置来控制客户端连接服务器的权限。 EMQ X 阿里云服务器的下载源默认是阿里云的镜像源,里面默认下载的是 Mysql 8.0版本的,如果需要下载别的版本的,可以 使用 docker容器下载。下载完后直接在命令行输入 mysql ,会进入 数据库 中,此时你的root用户没有密码,安全等级没有配置,什么都没有。如果要删除 EMQX ,只需要删掉/etc目录下的 emqx 和/usr/lib目录下的 emqx 文件夹即可。 实现物联网数据永久化的两种方法法一:本地部署1、新建 MySQL 数据库 及数据表,并 使用 Navicat 15 for MySQL 软件连接 数据库 查看并管理表格内容2、 使用 Xshell软件在服务器安装EMQ3、在EMQ Dashboard设置资源为 MySQL 并连接、设置规划使接收的数据存入 MySQL 4、数据采集(硬件部分)法二:云部署1、宝塔新建 MySQL 数据库 及数据表2、在EMQ X Cloud上部署,然后设置资源为 MySQL 并连接、设置规划使接收的数据存入 MySQL 3、数据采集(硬件部分)结果展示 法一:本地部 采用 emqx 搭建mqtt服务器,基于主题(topic)的发布订阅模式。在线上项目中 使用 ,肯定要进行动态的 认证 和topic权限鉴权,动态管理连接 emqx 的用户名和密码,以及用户对应的主题权限,本文采用外接 mysql 形式进行用户管理。 二、开启插件前准备好 数据库 在mysq... 关键配置都添加了@@字符,可以搜索##====================================================================## EMQ X Configuration R3.0##====================================================================##--------------...