使用ESP8266WiFi芯片连接MySQL数据库

使用ESP8266WiFi芯片连接MySQL数据库,mysql,c,arduino,iot,esp8266wifi,Mysql,C,Arduino,Iot,Esp8266wifi,我正试图直接从我的arduino连接到一个远程MySQL数据库,以便在某些硬件上进行遥测。但是,该代码在连接到db时被卡住,并且总是给出“找不到db”的答案。我错在哪里 我确信我对user/pass的理解是正确的,但是我真的不明白为什么它不能连接到数据库来执行查询 #include <ESP8266WiFi.h> #include <MySQL_Connection.h> #include <MySQL_Cursor.h> char ssid[] = &qu

我正试图直接从我的arduino连接到一个远程MySQL数据库,以便在某些硬件上进行遥测。但是,该代码在连接到db时被卡住,并且总是给出“找不到db”的答案。我错在哪里

我确信我对user/pass的理解是正确的,但是我真的不明白为什么它不能连接到数据库来执行查询

#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;
    
  }
}
#包括
#包括
#包括
char ssid[]=“mywifissid”;
char pass[]=“mywifipass”;
char mysqlUser[]=“mysqlUser”;
char mysqlPass[]=“mysqlpassword”;
char id[]=“someidforthearduino”;
WiFiClient WiFiClient;
MySQL\u连接mysqlConnection((客户端*)&wifiClient);
IPAddress mysqlServer(/*mySQL服务器的某种地址*/);
bool is_Sending=false;
char queryToExecute[128];
char queryUpdate[]=“somequery”;
int n压力=0;
无效设置(){
序列号开始(115200);
Serial.println(“corso中的Zazione pin…”);
pinMode(D4,输入\上拉);
连载.println(“康奈斯·阿拉·雷特在科索……”);
WiFi.disconnect();
WiFi.begin(ssid,pass);
while(WiFi.status()!=WL_已连接){
延迟(200);
连续打印(“.”);
}
Serial.println(“”);
连续打印(“康奈索con ip”);
Serial.println(WiFi.localIP());
序列号:println(“完整的网络地址”);
}
void循环(){
如果(!digitalRead(D4)&&!正在发送){
是否发送=真;
npress++;
连载.println(“科索的Rilevata pressione tasto.Connessione…”);
if(mysqlConnection.connect(mysqlServer,3306,mysqlUser,mysqlPass)){
Serial.println(“”);
序列号.println(“Connesso.Inserimento dato…”);
sprintf(queryToExecute、queryUpdate、npress、id);
MySQL\u Cursor*c=新的MySQL\u Cursor(&mysqlConnection);
c->execute(queryToExecute);
删除c;
Serial.println(“Aggiornamento effettuato!”);
}否则{
Serial.println(“未找到数据库”);
}
mysqlConnection.close();
is_Sending=false;
}
}

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