参考https://github.com/karan6190/MQTT-DB-plugin
前置条件:
插入数据库是在客户端来完成的,所以必须安装了Node,通过npm命令来完成。
1.下载MQTT-DB-plugin包,并解压的指定目录。
2.打开mqttTOmysql.js文件,修改其中的关于MQTT服务器两个主要位置,
Mysql服务器的配置信息(URL、用户名、密码、数据库的名称)。
更新完配置后需要对应到mysql里面先新增一个mqtt的数据库,然后新增一个表名为:tbl_messages,用于保存消息数据。
CREATE TABLE `tbl_messages` ( `fid` INT(11) NOT NULL AUTO_INCREMENT, `clientID` VARCHAR(500) NULL DEFAULT NULL, `topic` VARCHAR(500) NULL DEFAULT NULL, `message` VARCHAR(4000) NULL DEFAULT NULL, `date` DATE NULL DEFAULT NULL, PRIMARY KEY (`fid`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=2 ;
3.进入到MQTT-DB-plugin包所在的目录,用npm命令添加所需要引用的包(mqtt 和 mysql)
npm install mqtt --save
npm install mysql-server --save
(贴士) --save 等同于 -S 表示项目打包时会将该依赖包一并打包;-D(等同于--save-dev)表示该依赖包仅在开发环境下使用,正式打包不会加到项目中。
4.打包完毕后即可启动插件了,在同一个目录下面输入启动插件
node mqttTOmysql.js
能见到系统开始连接上MQTT服务器了!
当然之前一定先别忘了启动mosquito服务
这里备忘一下:本身不熟悉前端,发现 https://github.com/karan6190/MQTT-DB-plugin 这里启动插件用的是 npm mqttTOmysql.js,但是一直提示错误,无法启动
使用了node来启动,
5.下一步可以尝试在mosquitto的安装目录下面启动一个命令行形式的消息订阅者(不是必须,只是辅助判断消息是否运行正常),和一个命令行形式的消息发布者。
同时观察另一形式的通过插件把数据插入数据库的表数据是否也对应增加。
先启动一个消息订阅者
然后启动一个消息发布者,并提交消息数据
一旦消息发布者提交订阅主题为“test”,消息为“SensorTemperature1,hellomqtt”的时候,回来再看消息订阅者的窗口。
就会收到相关的消息了。那证明消息是正常的。
下一步我们就要到数据库表里面验证下插件是否有正常工作。打开数据库对应的表。发现消息已经写入到数据库里面了。 ok,顺利完成任务。