通过互联网连接将数据发送到MySQL服务器



我是MySQL的初学者,更像是一名固件专家。我正在开发一个应用程序,我将从微控制器+蜂窝设备中获取GPS坐标,我想用某种方法存储坐标并对其进行处理。我认为托管在服务器上的数据库是最有意义的,这就是我使用MySQL的原因。

基本上,我想知道通过互联网连接将数据发送到MySQL服务器的基本协议是什么(我的设备有数据(。比如我如何连接到服务器并向其发布数据?

我对MQTT很有经验,我想我也可以做TCP,但我正在寻找一种不是超级功耗密集型的协议,而且我不能使用任何需要操作系统的东西,比如python脚本。

需要明确的是,我并不是要求你告诉我如何做到这一点的每一步,而是基本上我可以使用什么协议和什么工具?你能告诉我的任何事情都将不胜感激。

我在想,我可以使用MySQL客户端的C代码来帮助编写一个驱动程序,使我能够连接到服务器。我有编写驱动程序的经验,我使用的微控制器使用C.

您根本不需要直接连接到数据库。您的移动设备应该能够建立到ipad地址/端口的tcp连接,并通过该连接发送字节流。它可以是一个有损耗的哑单向协议。

你需要一些可以在另一端侦听的服务,可以解析你的字节流,可以从中提取正确的数据包,然后将数据发送到数据库。坦率地说,服务甚至可以用linux shell编写:

nc -lk 1234 | collector.sh

其中collector.sh是这样的脚本:

#!/bin/sh
while read LINE
do 
# $LINE parsing and all the staff
mysql -e "INSERT INTO mygps.nmea (lat,lon,dtime) VALUES ($LAT, $LON, $DTIME);"
done <<< /dev/stdin
####

当然,这不是一个最好的解决方案,但它在一开始就对我很有帮助。然后,您可以以任何所需的方式继续收集数据。

构建一个简单的服务器,与收集到的任何数据进行通信,然后使用该服务器,在MySQL连接器的帮助下将数据发送到MySQL。构建协议的一部分将相当耗时。-nbk


如果您";不能使用任何需要操作系统的东西";您需要一些能够运行MySQL客户端驱动程序与数据库对话的中间件,然后您将使用MQTT在传感器和中间件之间传递数据。如果您不想自己编写这个中间件,像Node RED这样的东西可能会派上用场。

你当然可以为你的MC重新实现驱动程序,尽管我个人不想在这样的事情上浪费时间,因为我可以从现有组件组装解决方案。数据库协议通常是健谈的、同步的,并且对网络质量敏感,当我可以让中间件异步地做到这一点时,我不想浪费我的MC周期。-mustaccio


简单地";反向ssh端口转发";?我认为,这可以通过在连接的一端(或两端(使用单个ssh命令来实现。MySQL,默认情况下,需要客户端通过端口3306连接到服务器。-rick james

相关内容

最新更新