EMQ X 是一個高度可擴展、分布式 MQTT 消息代理,在物聯網、大數據、云計算等領域得到廣泛應用。我們可以通過在 EMQ X 上配置 MySql,將 MQTT 消息存儲到數據庫中。下面我們介紹 EMQ X 配置 MySql 的步驟。
首先,我們需要在 EMQ X 的配置文件中添加 MySql 配置。編輯 emqx/etc/plugins/emqx_management.conf 文件,加入以下內容:
management.mysql.pool_name = emqx_mysql_pool management.mysql.database = emqx management.mysql.username = root management.mysql.password = root management.mysql.pool_size = 10 management.mysql.server = 127.0.0.1:3306
上述內容定義了 MySql 連接池的配置,包括連接的數量、數據庫名稱、用戶名密碼等信息。在 server 字段中,我們需要指定 MySql 服務器的地址和端口。
接下來,我們需要在 MySql 中創建數據庫和表。打開 MySql 命令行,執行以下命令創建數據庫和表:
CREATE DATABASE `emqx` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE `emqx`; CREATE TABLE `mqtt_message` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `topic` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT '', `payload_format` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT '', `payload` blob, `qos` tinyint(3) unsigned NOT NULL DEFAULT '0', `retain` tinyint(3) unsigned NOT NULL DEFAULT '0', `client_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT '', `username` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT '', `timestamp` bigint(20) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
上述命令創建了一個名為 emqx 的數據庫,以及一個 mqtt_message 的表。mqtt_message 表用于存儲 MQTT 消息的相關信息。
配置完成后,我們需要重啟 EMQ X,使得 MySql 配置生效。重啟命令如下:
sudo ./bin/emqx restart
至此,我們已經完成了 EMQ X 配置 MySql 的過程。現在,所有發送到 EMQ X 的 MQTT 消息都會自動存儲到 MySql 數據庫中。
上一篇mysql cent
下一篇enum用法mysql