微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用ESP8266WiFi芯片连接到MySQL数据库

如何解决使用ESP8266WiFi芯片连接到MySQL数据库

我试图直接从arduino连接到远程MysqL数据库,以便对某些硬件进行遥测。但是,代码在连接到数据库时会卡住,并始终给出“找不到数据库”的答案。我在哪里错了?

我确定我对用户/密码正确,但是我真的不知道为什么它不会连接到数据库来执行查询

#include <ESP8266WiFi.h>
#include <MysqL_Connection.h>
#include <MysqL_Cursor.h>

char ssid[] = "mywifissid";
char pass[] = "mywifipass";
char MysqLUser[] = "MysqLuser";
char MysqLPass[] = "MysqLpassword";
char id[] = "someidforthearduino";
WiFiClient wifiClient;
MysqL_Connection MysqLConnection ((Client *)&wifiClient);
IPAddress MysqLServer (/*some kind of address for the MysqL server*/);
bool is_Sending = false;
char queryToExecute[128];
char queryUpdate[] = "somequery";
int nPresses = 0;

void setup() {
  Serial.begin(115200);
  Serial.println("Inizializzazione pin in corso...");
  pinMode(D4,INPUT_PULLUP);
  Serial.println("Connessione alla rete in corso...");
  WiFi.disconnect();
  WiFi.begin(ssid,pass);
  while(WiFi.status() != WL_CONNECTED) {
    delay(200);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connesso con ip ");
  Serial.println(WiFi.localIP());
  Serial.println("Inizializzazione completata");
}

void loop() {
 if (!digitalRead(D4) && !is_Sending) {
    is_Sending = true;
    nPresses++;
    Serial.println("Rilevata pressione tasto. Connessione in corso...");
    if (MysqLConnection.connect(MysqLServer,3306,MysqLUser,MysqLPass)) {
      Serial.println("");
      Serial.println("Connesso. Inserimento dato...");
      sprintf(queryToExecute,queryUpdate,nPresses,id);
      MysqL_Cursor *c = new MysqL_Cursor(&MysqLConnection);
      c->execute(queryToExecute);
      delete c;
      Serial.println("Aggiornamento effettuato!");  
    } else {
      Serial.println("No db found.");
    }
    MysqLConnection.close();
    is_Sending = false;
    
  }
}

解决方法

我知道了。该代码是正确的,我刚刚为MySQL服务器键入了错误的IP!我是通过打开命令提示符并ping主机名发现它的;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。