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##====================================================================##--------------...