从Arduino Yun执行MySQL脚本(不含Python)

时间:2014-11-12 08:29:08

标签: python mysql process arduino arduino-yun

我想从直接在Arduino YUN中运行的MySQL数据库中检索数据。 我想在没有Python的情况下完成它,但是直接使用MySQL命令和Process。可能吗?
我在互联网上发现的每篇帖子都是“如何使用python检索数据”。但我不想使用python,因为连接do数据库等常规会减慢我的查询速度 我正在从数据库中多次检索数据,并从不同的表中检索数据。所以我将数据检索的逻辑移到MySQL函数中,现在想要使用Process类调用这个函数。问题是它直接从mysql控制台工作,使用python工作,但不能直接工作。当我直接说,我的意思是:

Process process;
process.begin("python");
process.addParameter("/mnt/sda1/arduino/python/read.py");
process.addParameter(msg);
process.run();

此代码完美运行并使用python。在read.py文件中我有数据库调用例程。所以我想做同样的事情,但没有python:

Process process;
process.begin("mysql");
process.addParameter("-u root -parduino --database arduino -e \"select process('my_text')\"");
process.run();

您可以理解,此代码示例不起作用。但是,如果我通过控制台运行它,那么相同的Mysql脚本可以完美地运行,并且比使用python快得多。

2 个答案:

答案 0 :(得分:0)

您可以使用subprocess模块。

https://docs.python.org/2/library/subprocess.html

使用它可以将mysql命令发送到终端,就像直接通过python脚本发送一样。

答案 1 :(得分:0)

试试Process.runShellCommand。它将接受您的完整陈述作为论据:

Process process;
process.runShellCommand("mysql -u root -parduino --database arduino -e \"select process('my_text')\"");