emqx启用MySQL 认证 / 访问控制

本文介绍了如何在EMQ X中启用MySQL认证和访问控制,包括关闭匿名访问、配置默认表结构、ACL Table的使用,以及考虑查询性能的进阶设置和MySQL 8.0以上版本的特殊注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL 认证 / 访问控制即插件emqx_auth_mysql

在emqx运行中加载插件(其他插件修改插件名称即可)

./bin/emqx_ctl plugins load emqx_auth_mysql

需要关闭emqx的匿名访问设置:

# etc/emqx.conf

## Value: true | false
allow_anonymous = true

警告

生产环境中请禁用匿名认证。

需要在 etc/plugins/emqx_auth_mysql.conf 中配置以下内容:

## 服务器地址
auth.mysql.server = 127.0.0.1:3306

## 连接池大小
auth.mysql.pool = 8
##数据库连接用户名
auth.mysql.username = emqx
##数据库连接密码
auth.mysql.password = public
##数据连接的库名,database
auth.mysql.database = mqtt

auth.mysql.query_timeout = 5s

默认表结构

MySQL 认证默认配置下需要确保数据库中有下表:

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_supe
03-19
<think>好的,用户想了解EMQX MQTT Broker的使用说明、功能介绍和安装配置。首先,我需要整理EMQX的基本信息,包括它是什么,主要功能,以及如何安装和配置。根据用户提供的引用,里面有提到Docker部署、命令行工具的使用以及Python库的安装,这些都需要涵盖进去。 首先,EMQX是一个开源的MQTT Broker,支持MQTT 5.0协议,高并发和低延迟。功能方面需要强调其核心功能,比如消息路由、认证授权、集群扩展等。然后安装部分,用户提到了Docker部署,引用[2]和[3]都涉及Docker命令,所以需要详细说明Docker安装步骤。另外,引用[2]还提到了paho-mqtt库的安装和使用,可能需要补充客户端连接的例子,比如Python代码示例。 用户可能还需要知道如何验证安装是否成功,比如使用mosquitto_pub和mosquitto_sub命令测试连接,这部分在引用[1]里有例子,可以引用。配置方面,需要提到配置文件的位置和常见配置项,比如监听端口、认证方式,引用[4]提到了项目结构,可能涉及配置文件路径。 另外,用户可能关心基本操作,比如启动、停止服务,以及如何订阅和发布消息。这里需要分步骤说明,确保清晰。安全问题也是重点,比如如何设置TLS和权限控制,引用里的信息可能不够,需要结合EMQX官方文档补充。 最后,生成相关问题时要围绕用户的需求,可能包括性能优化、高可用配置、安全设置以及客户端开发等。确保问题覆盖用户可能感兴趣的扩展话题,帮助他们进一步学习。</think>### EMQX MQTT Broker 使用说明与功能介绍 #### **EMQX 简介** EMQX 是一款开源的高性能 **MQTT Broker**,支持 MQTT 5.0 协议,专为物联网场景设计,具备高并发、低延迟和分布式扩展能力。其核心功能包括消息路由、安全认证、数据持久化、集群管理等[^1][^3]。 --- #### **主要功能** 1. **消息路由与发布/订阅** - 支持 MQTT 协议的消息发布与订阅,可通过主题(Topic)实现灵活的路由机制。例如,使用 `mosquitto_pub` 发布消息到主题 `topic/test`: ```bash mosquitto_pub -h <EMQX_IP_ADDRESS> -p 1883 -t "topic/test" -m "Hello, EMQX!" ``` 2. **安全与认证** - 支持用户名/密码、客户端证书、JWT 等多种认证方式。 - 提供 ACL(访问控制列表)管理客户端权限[^4]。 3. **高可用与扩展性** - 支持横向集群扩展,通过 Erlang/OTP 分布式架构实现高可用性[^4]。 4. **数据集成** - 支持与 MySQL、PostgreSQL、Kafka 等外部系统集成,实现数据持久化或实时转发[^3]。 --- #### **安装与配置** ##### 1. Docker 部署(推荐) 通过 Docker 快速启动 EMQX: ```bash docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 emqx/emqx:latest [^2] ``` - **端口说明**: - `1883`:MQTT 协议默认端口 - `8083`:WebSocket 端口 - `8084`:Dashboard 管理界面端口 ##### 2. 二进制安装 从官网下载对应平台的安装包,解压后运行: ```bash ./bin/emqx start ``` ##### 3. 验证安装 访问 Dashboard(默认地址 `http://<IP>:18083`),使用默认账号 `admin/public` 登录,查看运行状态。 --- #### **基本操作** 1. **客户端连接示例(Python)** 安装 Paho-MQTT 客户端库: ```bash pip install paho-mqtt [^2] ``` 订阅消息的代码片段: ```python import paho.mqtt.client as mqtt def on_connect(client, userdata, flags, rc): client.subscribe("topic/test") client = mqtt.Client() client.on_connect = on_connect client.connect("<EMQX_IP_ADDRESS>", 1883, 60) client.loop_forever() ``` 2. **配置文件路径** - 主配置文件:`etc/emqx.conf` - 修改监听端口或认证方式后需重启服务生效[^4]。 --- #### **安全配置建议** - **启用 TLS 加密**:在 `emqx.conf` 中配置 SSL 证书路径。 - **限制匿名访问**:默认允许匿名连接,生产环境建议关闭。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值