搭建MQTT服务器
- 安装EMQX
- 命令配置 EMQX Apt 源:
- 安装 EMQX
- 启动 EMQX
- 卸载EMQX
- 登录EMQX控制台
- 开放端口
- 打开
- 测试MQTT通信
- MQTT客户端测试
- 添加客户端认证配置
- 客户端授权配置
- API接口说明
- 安装MySQL数据库
- 1. 下载 MySQL APT 配置包
- 2. 安装仓库配置包
- 3. 更新系统包索引
- 4. 安装MySQL
- 5.启动 MySQL 服务
- 6.查看MySQL的状态
- 7.设置开机自启
- 8.登录 MySQL
- 9.修改 root 密码
- 10.创建允许远程访问的用户
- 11.查看用户权限
- 12.重启 MySQL 服务
- 卸载MySQL数据库
- 1.停止服务
- 2.卸载软件包
- 3.删除 MySQL 数据目录
- 4、清理残留文件
- 5.确认卸载结果
- 绑定EMQX
- Navicat连接测试
- 2.客户端认证
安装EMQX
这里使用的是ubuntu的操作系统。
命令配置 EMQX Apt 源:
curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
安装 EMQX
sudo apt-get install emqx
启动 EMQX
sudo systemctl start emqx
常用的一些命令
sudo systemctl emqx start 启动
sudo systemctl emqx stop 停止
sudo systemctl emqx restart 重启
卸载EMQX
sudo apt remove --purge emqx
sudo apt autoremove # 移除不再需要的依赖
删除残留文件
sudo rm -rf /etc/emqx # 配置文件
sudo rm -rf /var/lib/emqx # 数据文件
sudo rm -rf /var/log/emqx # 日志文件
登录EMQX控制台
开放端口
首先将18083/1883/8083这三个端口给开放
打开
在浏览器里输入IP地址:18083。进入到控制台,第一次打开有点慢。
初始账号密码为admin,public。
第一次进入时会让你进行修改密码,这里我们按照他的提示进行修改密码。
成功进入:
测试MQTT通信
新建一个客户端。
连接成功后,依次点击订阅,发布。如果下面消息可以正常的接收。说明MQTT服务器通信是正常的。
MQTT客户端测试
服务器地址填写ip地址。用户名和密码任意填写,由于还没进行配置客户端认证所以现在谁都可以填上。
接着添加订阅和发布。
可以看到此时MQTT客户端已经可以和控制台进行通信,说明MQTT连接没有问题。
添加客户端认证配置
1.打开认证页面。
2.选择密码认证。
3.选着内置数据库。
4.设置认证方式(都可以默认,不用改),直接点击创建。
5.创建成功后,点击用户管理。
6.添加用户
创建两个用户。
7.MQTT客户端连接测试
可以发现之前任意输入的用户名和密码现在已经连接不上了。
将其修改为上面添加的用户就可以了。
客户端授权配置
客户端授权页面可以配置每个客户端(设备)的主题发布,订阅权限。限制它是否可以发布主题,订阅主题。
1.创建数据源
2.选择内置数据库点击下一步并创建
3.点击权限管理
4.选择客户端ID
5.点击添加
6.设备间通信测试在这里插入代码片
设备A的MQTT信息
MQTT服务器地址:xxxxxxx
MQTT服务器端口号:1883
MQTT客户端ID:111
MQTT用户名:test1
MQTT登录密码:12345678
订阅主题:222/#
发布主题:111/1
发布的消息:{ "msg": "我是test1设备" }
设备B的MQTT信息:
MQTT服务器地址:xxxxxxx
MQTT服务器端口号:1883
MQTT客户端ID:222
MQTT用户名:test2
MQTT登录密码:12345678
订阅主题:111/#
发布主题:222/1
发布的消息:{ "msg": "我是test2设备" }
API接口说明
帮助文档地址: https://www.emqx.io/docs/zh/v5.0/admin/api.html#%E8%AE%A4%E8%AF%81
在EMQX服务启动后,可以访问http://localhost:18083/api-docs/index.html来查看API文档,同时也可以直接在Swagger UI 上尝试执行一些 API。
访问效果:
安装MySQL数据库
1. 下载 MySQL APT 配置包
wget https://dev.mysql.com/get/mysql-apt-config_0.8.26-1_all.deb
2. 安装仓库配置包
sudo dpkg -i mysql-apt-config_0.8.26-1_all.deb
确保到这一步自己的情况是这样的。然后OK保存。
3. 更新系统包索引
apt-get update
4. 安装MySQL
apt-get install mysql-server
5.启动 MySQL 服务
sudo systemctl start mysql # Ubuntu中服务名为mysql而非mysqld
6.查看MySQL的状态
systemctl status mysql
7.设置开机自启
sudo systemctl enable mysql
8.登录 MySQL
mysql -u root -p
9.修改 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
10.创建允许远程访问的用户
记得打开3306端口的防火墙。
CREATE USER '用户名'@'%' IDENTIFIED BY '你的密码'; # 创建允许远程访问的用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
将:bind-address = 127.0.0.1
改为:bind-address = 0.0.0.0
11.查看用户权限
确保存在允许远程访问的用户(如 ‘user’@‘%’,% 表示允许所有 IP 访问)
SELECT User, Host FROM mysql.user;
12.重启 MySQL 服务
sudo systemctl restart mysql
卸载MySQL数据库
1.停止服务
sudo systemctl stop mysql
2.卸载软件包
# 移除MySQL服务器及依赖
sudo apt remove --purge mysql-server mysql-server-5.7 mysql-client mysql-client-5.7 mysql-common# 自动移除不再需要的依赖
sudo apt autoremove# 清理残留的配置文件
sudo apt purge mysql-*
3.删除 MySQL 数据目录
注意:这将彻底删除所有数据库文件(包括数据和日志),请提前备份重要数据!
sudo rm -rf /var/lib/mysql # MySQL数据目录
sudo rm -rf /var/log/mysql # MySQL日志目录
sudo rm -rf /etc/mysql # MySQL配置目录
4、清理残留文件
检查并删除其他可能残留的 MySQL 文件:
sudo find / -name 'mysql*' -exec rm -rf {} \; 2>/dev/null
5.确认卸载结果
mysql --version # 应提示"command not found"
dpkg -l | grep mysql # 不应显示任何MySQL相关包
绑定EMQX
Navicat连接测试
1.首先进行Navicat客户端的连接测试,看是否可以正常连接。
2.新建MQTT_USER数据库
2.客户端认证
1.创建新的客户端认证
3.数据源选择MySQL。