一、安装

1、下载mosquitto安装包

地址:http://mosquitto.org/files/source/

2、安装依赖包

yum install gcc gcc-c++ libstdc++-devel 

yum install openssl-devel -y

yum install c-ares-devel -y

yum install uuid-devel -y

yum install libuuid-devel -y

yum install c-ares-devel

3、编译并安装

解压下载的安装包:tar zxvf mosquitto-2.0.10.tar.gz

进入解压后的文件夹:cd mosquitto-2.0.10

执行命令:make && make install

4、安装后进入 /etc/mosquitto中,复制配置文件

cp mosquitto.conf.example mosquitto.conf

5、启动

mosquitto -c /etc/mosquitto/mosquitto.conf

//后台启动
mosquitto -c /etc/mosquitto/mosquitto.conf -d

6、关闭,kill进程

ps -aux | grep mosquitto
kill -9 2438

至此安装mosquitto完毕!

二、设置用户密码

1、打开配置文件为/etc/mosquitto/mosquitto.conf

配置如下 :

listener 1883  //配置允许外部访问的端口设置
allow_anonymous false //配置不允许匿名访问,需输入账号密码才可订阅或者发布
password_file /etc/mosquitto/pwfile.example //配置账号密码存放的路径

2、设置用户密码

命令如下:

mosquitto_passwd /etc/mosquitto/pwfile.example 用户名

回车后,按照提示输入两次密码即可!

3、用户测试验证

启动 mosquitto:

mosquitto -c /etc/mosquitto/mosquitto.conf

(订阅端)客户端启动:

mosquitto_sub -h 地址 -t 主题 -u 用户名 -P 密码

(发布者)客户端启动:

mosquitto_pub -h 地址 -t 主题 -u 用户名 -P 密码 -m 发布内容

三、补充问题

编译问题

1、fatal error: cjson/cJSON.h: No such file or directory



解决:需要安装cJSON(这里cJSON的安装,yum和apt不一定能找到,可以直接从github上下载源码压缩包,然后解压,进入目录,并make,make install)

启动订阅客户端问题

1、error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

解决:执行以下命令:

sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
ldconfig

2、error while loading shared libraries: libcjson.so.1: cannot open shared object file: No such file or directory



解决:

方法1:

编辑/etc/ld.so.conf文件,在新的一行中加入库文件所在目录(/usr/local/lib);

运行ldconfig,以更新/etc/ld.so.cache文件;

方法2:

在/etc/ld.so.conf.d/目录下新建任何以.conf为后缀的文件(touch mqtt.conf),在该文件中加入库文件所在的目录;

运行ldconfig,以更新/etc/ld.so.cache文件;

3、Warning: Unable to drop privileges to 'mosquitto' because this user does not exist. Trying 'nobody' instead.

解决:

在allow_anonymous 前面加一个 user root

user root
allow_anonymous false

或者创建mosquitto用户和组

groupadd mosquitto
useradd -g mosquitto mosquitto
chown -R mosquitto:mosquitto /etc/mosquitto/

四、参考以下文章

https://www.cnblogs.com/chen1-kerr/p/7258487.html

https://www.cnblogs.com/IC1101/p/14749722.html

https://blog.csdn.net/u012377333/article/details/69397124

https://www.cnblogs.com/x_wukong/p/4722903.html

https://blog.csdn.net/houjixin/article/details/46711547

MQTT服务器搭建——Liunx安装mosquitto,并设置用户密码的更多相关文章

  1. 常见MQTT服务器搭建与试用

    常见MQTT服务器搭建与试用   简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠 ...

  2. 个人智能家居系统 - MQTT服务器搭建(centOS7.3)

    个人智能家居系统 - MQTT服务器搭建(centOS7.3) 0x00 参考 在CentOS7 上安装mosquitto1.4.1服务器,实现MQTT信息推送功能并增加websocket功能 mos ...

  3. Mqtt服务器搭建

    .bg { background: #99CC99 } Mqtt服务器搭建 测试环境:CentOS64位 1.安装基础软件 yum install gcc-c++ yum install cmake ...

  4. 服务器搭建--Linux安装rabbitmq

    安装rabbitmq需要先安装erlang:安装erlang参考https://blog.csdn.net/ztx114/article/details/79912570 1.下载rabbitmq-s ...

  5. 服务器搭建--Linux安装erlang

    1.安装依赖环境: 1)安装GCC GCC-C++ Openssl等模块,安装过就不需要安装了 yum -y install make gcc gcc-c++ kernel-devel m4 ncur ...

  6. MariaDB数据库设置用户密码

    SET PASSWORD [FOR user] = { PASSWORD('some password') | OLD_PASSWORD('some password') | 'encrypted p ...

  7. MQTT服务器搭建--Mosquitto用户名密码配置

    Mosquitto用户认证配置 前言:基于Mosquitto服务器已经搭建成功,大部分都是采用默认的是允许匿名用户登录模式,正式上线的系统需要进行用户认证. 1.用户参数说明 Mosquitto服务器 ...

  8. 常见MQTT服务器搭建[转载]

    简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠的网络的进行远程传感器和控制设备通 ...

  9. Apollo mqtt 服务器搭建

    html { overflow-x: initial !important } :root { --bg-color: #ffffff; --text-color: #333333; --select ...

  10. MQTT服务器搭建-mosquitto1.4.4安装指南

    Mosquitto mosquitto是一款实现了 MQTT v3.1 协议的开源的消息代理服务软件. 其提供了非常轻量级的消息数据传输协议,采用发布/订阅模式进行工作,可用于物联设备.中间件.APP ...

随机推荐

  1. git的相关命令

    1.将文件添加至版本库的暂存区(stage)的命令是git add 1.1.  添加完所有有被修改的文件:git add . 1.2. 添加指定文件:git add 指定文件 2.将文件提交至本地仓库 ...

  2. IDEA,Run是灰色无法运行 解决办法

    转载地址:https://blog.csdn.net/sinat_39017906/article/details/83717068 找到项目里面的 Structure,点击打开: 然后,选中main ...

  3. TCP通信实现两个主机之间的信息交互

    TCP通信概述TCP协议用来控制两个网络设备之间的点对点通信,两端设备按作用分为客户端和服务端.服务端为客户端提供服务,通常等待客户端的请求信息,有客户端请求到达之后,及时提供服务和返回响应消息:客户 ...

  4. 读《高情商修炼手册》有感 output

    偶然的一次机遇,遇见了这本书,本着情绪的心态的初衷去阅读,没想到还是挺好读的,此次记录是在读完这本书之后的第二天,受output 1.情商高,意味着控制好自己的情绪,让人相处舒服 在智商过剩的年代,有 ...

  5. 如何查看nvidia官网发布的tensorrt镜像中都包含哪些包,trt版本是多少,cuda版本是多少?如何查看nvidia官网发布的triton镜像中都包含哪些包?

    在这里查看trt镜像中包含哪些内容:https://docs.nvidia.com/deeplearning/tensorrt/container-release-notes/rel_21-07.ht ...

  6. 01 流程控制之for循环

    '''1.什么是for循环 循环就是重复做某件事,for循环是python提供第二种循环机制2.为何要有for循环 理论上for循环能做的事情,while循环都可以做 之所以要有for循环,是因为fo ...

  7. VS2017创建Linux项目实现远程GDB调试

    vs2017新增linux for C++的模块,尝试安装了一下环境. 首先,安装VS2017,安装时注意选择以下模块: 安装完成后,需要配置Linux服务端的部分,我的配置过程如下: 第一步,安装V ...

  8. lsyncd-实时同步(镜像)守护程序

    本文作者: 五行哥 QQ: 1226032602 E-mail: 1226032602@qq.com 官方文档 https://axkibe.github.io/lsyncd/ https://git ...

  9. HTML+CSS+JS制作一个黑灰色简约时钟

    HTML+CSS+JS制作一个黑灰色简约时钟 1. 效果图: 2. 特点:这次借鉴了网络上的代码,利用JS动态创建元素,减少html语句的数量,也便于与vue.react等语言进行结合. 3. 代码实 ...

  10. 95、linux安装es

    参考大佬文章 https://blog.csdn.net/b13001216978/article/details/110817204 1.由于elasticsearch7.4.0需要jdk11支持, ...