环境
- EMQX 版本: [5.4.1]
- 操作系统版本:Ubuntu 20.
重现此问题的步骤
- 按照官网上将 “MQTT 数据写入到 PostgreSQL”的示例配置好之后发现它动作执行都是失败的,用MQTTX HEX能查看,其他格式都是乱码
你好,请问你发送的 MQTT 消息中的 Payload 是不可见的二进制对吗?
请问对应这这个 PostgreSQL 这张 t_mqtt_msg 的 payload 列类型是什么呢?
ps: 另外也可以翻下 EMQX 的日志,看看报错的内容是什么原因呢?
所以是由于 text 格式没法存储,二进制数据导致写入 PGSQL 失败了? 试试改下格式,或者把 “动作”的 SQL 模板中的 ${payload}
改成一个硬编码的字符串。做对比测试,来找下失败原因
有可供参考的sql吗
我根据官网上写的
INSERT INTO t_mqtt_msg(msgid, sender, topic, qos, payload, arrived)
VALUES (
${id},
${clientid},
${topic},
${qos},
${payload},
TO_TIMESTAMP(${timestamp}::bigint / 1000)
);
您看需要怎么改呢呢
这类设备一般发出的数据通常是字节流,需要转换为字符串