EMQ X MySQL认证配置
时间: 2023-11-01 18:24:11 浏览: 58
EMQ X 支持使用 MySQL 进行认证,具体配置步骤如下:
1. 安装 MySQL 和 Python 的 MySQL 驱动程序
2. 创建 EMQ X 所需的数据库和数据表,可以使用以下 SQL 语句:
```sql
CREATE DATABASE emqx_auth;
USE emqx_auth;
CREATE TABLE mqtt_user (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(100) NOT NULL,
password VARCHAR(100) NOT NULL,
is_superuser BOOL NOT NULL DEFAULT FALSE,
PRIMARY KEY (id),
UNIQUE KEY mqtt_user_username_uindex (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE mqtt_acl (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
allow INT(1) NOT NULL DEFAULT 1,
ipaddr VARCHAR(60) NOT NULL DEFAULT '',
username VARCHAR(100) NOT NULL,
clientid VARCHAR(100) NOT NULL,
access INTEGER(2) NOT NULL,
topic VARCHAR(256) NOT NULL,
PRIMARY KEY (id),
KEY mqtt_acl_username_clientid_topic_uindex (username,clientid,topic)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
```
3. 配置 EMQ X,编辑 emqx.conf 文件,将 auth.acl.auth_mysql 和 auth.user.auth_mysql 配置为 true,同时配置数据库连接信息,例如:
```conf
auth.user.auth_mysql = on
auth.user.mysql.server = 127.0.0.1:3306
auth.user.mysql.username = root
auth.user.mysql.password = root
auth.user.mysql.database = emqx_auth
auth.user.mysql.pool = 8
auth.acl.auth_mysql = on
auth.acl.mysql.server = 127.0.0.1:3306
auth.acl.mysql.username = root
auth.acl.mysql.password = root
auth.acl.mysql.database = emqx_auth
auth.acl.mysql.pool = 8
```
4. 重启 EMQ X,使配置生效。
注意:以上配置仅供参考,实际配置应根据具体情况进行调整。