求教,是ESP8266连接MySQL数据库的问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1633|回复: 20

求教,是ESP8266连接MySQL数据库的问题

[复制链接]
发表于 2022-4-3 10:55 | 显示全部楼层 |阅读模式
我现在遇到的问题是:使用Arduino上下载的MySQL的类库里的示例代码,使用ESP8266连接MySQL数据库并在表中插入测试数据,在串口上显示WiFi连接成功但是数据库连接失败
  1. #include <ESP8266WiFi.h>           // Use this for WiFi instead of Ethernet.h
  2. #include <MySQL_Connection.h>
  3. #include <MySQL_Cursor.h>

  4. IPAddress server_addr(192,168,1,3);  // 这个是我自己电脑的ip地址
  5. char user[] = "root";              // MySQL user login username
  6. char password[] = "123456";        // MySQL user login password

  7. // Sample query
  8. char INSERT_SQL[] = "INSERT INTO test.mess (message) VALUES ('Hello, Arduino!')";

  9. // WiFi card example
  10. char ssid[] = "CU_cJt5";         // your SSID
  11. char pass[] = "nv4q5vzz";     // your SSID Password

  12. WiFiClient client;                 // Use this for WiFi instead of EthernetClient
  13. MySQL_Connection conn(&client);
  14. MySQL_Cursor* cursor;

  15. void setup()
  16. {
  17.   Serial.begin(115200);
  18.   while (!Serial); // wait for serial port to connect. Needed for Leonardo only

  19.   // Begin WiFi section
  20.   Serial.printf("\nConnecting to %s", ssid);
  21.   WiFi.begin(ssid, pass);
  22.   while (WiFi.status() != WL_CONNECTED) {
  23.     delay(500);
  24.     Serial.print(".");
  25.   }

  26.   // print out info about the connection:
  27.   Serial.println("\nConnected to network");
  28.   Serial.print("My IP address is: ");
  29.   Serial.println(WiFi.localIP());

  30.   Serial.print("Connecting to SQL...  ");
  31.   Serial.println(server_addr);
  32.   if (conn.connect(server_addr, 3306, user, password)) //在这一步执行连接的时候总是失败
  33.     Serial.println("OK.");
  34.   else
  35.     Serial.println("FAILED.");

  36.   
  37.   // create MySQL cursor object
  38.   cursor = new MySQL_Cursor(&conn);
  39. }

  40. void loop()
  41. {
  42.   if (conn.connected())
  43.     cursor->execute(INSERT_SQL);

  44.   delay(5000);
  45. }
复制代码
我在自己的MySQL中用我自己电脑的ip地址可以登入MySQL但是通过ESP8266却失败了,我想请教一下原因
发表于 2022-4-3 13:08 | 显示全部楼层
啊啊 。。网上有esp8266成功连接mysql的例子??? esp8266才64k还是96k内存的。。。mysql 能行??我记得mysql连接最小2M吧??
 楼主| 发表于 2022-4-3 13:12 | 显示全部楼层
imhm 发表于 2022-4-3 13:08
啊啊 。。网上有esp8266成功连接mysql的例子??? esp8266才64k还是96k内存的。。。mysql 能行??我记得m ...

这个是从Arduino库管理器里下载的示例代码,应该是可以的吧,而且我只是访问我电脑上面的MySQL的话应该是可以的吧
发表于 2022-4-3 15:32 | 显示全部楼层
希夷 发表于 2022-4-3 13:12
这个是从Arduino库管理器里下载的示例代码,应该是可以的吧,而且我只是访问我电脑上面的MySQL的话应该是 ...

mysql 默认没开启远程访问权限。。你电脑访问,就是安装mysql的那台电脑?还是局域网中的电脑?
 楼主| 发表于 2022-4-3 15:38 | 显示全部楼层
imhm 发表于 2022-4-3 15:32
mysql 默认没开启远程访问权限。。你电脑访问,就是安装mysql的那台电脑?还是局域网中的电脑? ...

我安装的时候勾选了开启远程访问权限,电脑访问时安装数据库的那个电脑。对了我还想请教一个问题,我想将ESP8266当成一个单纯的转发数据的作用,就是传感器把数据传给开发板,开发板通过ESP8266把数据插入数据库,但是这个问题我不知道该怎么去实现,请问有什么参考资料吗。
发表于 2022-4-3 16:07 | 显示全部楼层
希夷 发表于 2022-4-3 15:38
我安装的时候勾选了开启远程访问权限,电脑访问时安装数据库的那个电脑。对了我还想请教一个问题,我想将 ...

要么使用公用云的mqtt服务,要么自己撸个mqtt服务,要么干脆撸个网页,接收esp8266 通过http client,post上来的数据,网页负责存数据库。。。
发表于 2022-4-3 16:12 | 显示全部楼层
希夷 发表于 2022-4-3 15:38
我安装的时候勾选了开启远程访问权限,电脑访问时安装数据库的那个电脑。对了我还想请教一个问题,我想将 ...

mysql 那台电脑防火墙还要放开 3306 端口
 楼主| 发表于 2022-4-3 16:15 | 显示全部楼层
imhm 发表于 2022-4-3 16:12
mysql 那台电脑防火墙还要放开 3306 端口

已经开放了
 楼主| 发表于 2022-4-3 16:18 | 显示全部楼层
imhm 发表于 2022-4-3 16:07
要么使用公用云的mqtt服务,要么自己撸个mqtt服务,要么干脆撸个网页,接收esp8266 通过http client,pos ...

ESP8266通过usb线连接到电脑上了,Arduino UNO开发板也是连接到电脑上,现在两个板子都有一个串口,有什么办法将数据在这种情况下传给ESP8266吗
发表于 2022-4-3 16:22 | 显示全部楼层
希夷 发表于 2022-4-3 16:18
ESP8266通过usb线连接到电脑上了,Arduino UNO开发板也是连接到电脑上,现在两个板子都有一个串口,有什 ...

抛弃 Arduino UNO 。。。 把传感器直接接esp8266 开发板不行? esp8266 性能很强的。。读个传感器应该一点问题木有吧。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 08:29 , Processed in 0.077953 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表