Nano RP2040 -> WifiNina -> MySQLConnector

Hello,
I am attempting to connect my arduino nano rp2040 to MySQL.

Here is the code
(Note: WifiNina successfully connects, MySQLConnector fails to connect):

/*
  Web client

 This sketch connects to a website (http://www.google.com)
 using the WiFi module.

 This example is written for a network using WPA encryption. For
 WEP or WPA, change the WiFi.begin() call accordingly.

 This example is written for a network using WPA encryption. For
 WEP or WPA, change the WiFi.begin() call accordingly.

 Circuit:
 * Board with NINA module (Arduino MKR WiFi 1010, MKR VIDOR 4000 and Uno WiFi Rev.2)

 created 13 July 2010
 by dlf (Metodo2 srl)
 modified 31 May 2012
 by Tom Igoe
 */


#include <SPI.h>
#include <WiFiNINA.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>

#include "arduino_secrets.h" 
///////please enter your sensitive data in the Secret tab/arduino_secrets.h
char ssid[] = SECRET_SSID;        // your network SSID (name)
char pass[] = SECRET_PASS;    // your network password (use for WPA, or use as key for WEP)
int keyIndex = 0;            // your network key index number (needed only for WEP)

int status = WL_IDLE_STATUS;
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128);  // numeric IP for Google (no DNS)
char server[] = "www.google.com";    // name address for Google (using DNS)


//MySQL Connector
IPAddress server_addr(127,0,0,1);  // IP of the MySQL *server* here
char user[] = "bob";              // MySQL user login username
char password[] = "secret";        // MySQL user login password

// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
WiFiClient client;
MySQL_Connection conn((Client *)&client);

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // check for the WiFi module:
  if (WiFi.status() == WL_NO_MODULE) {
    Serial.println("Communication with WiFi module failed!");
    // don't continue
    while (true);
  }

  String fv = WiFi.firmwareVersion();
  if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
    Serial.println("Please upgrade the firmware");
  }

  // attempt to connect to WiFi network:
  while (status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid, pass);

    // wait 10 seconds for connection:
    delay(10000);
  }
  Serial.println("Connected to WiFi");
  printWifiStatus();


  //ATTEMPTING TO CONNECT TO MySQL Server
  Serial.println("\nStarting connection to server...");
  if(conn.connect(server_addr, 3306, user, password)){
    delay(1000);
    Serial.println("\nConnected");
  }else{
    Serial.println("Connection failed...");
  }conn.close();

}

void loop() {
}


void printWifiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your board's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

Here is the MySQLConnector Manual: chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://st2.ning.com/topology/rest/1.0/file/get/2053761171?profile=original

127.0.0.1 is the localhost address. Unless the MySQL server is running on the Nano itself, this server address is wrong. You can use this address if your connection from exactly the same host (e.g. your PC) but as soon as any physical network is involved (as in the Nano case) you must use another IP address.

May you please help me establish a remote connection at a different ip address?

I’m having difficulty changing the configuration settings of MySQL…

You just have to use the external IP address of that host. As you're using MySQL I guess it runs on Linux, so use the following commands to get the IP address:

ip address show

Post the output of that command (no pictures!).

If you run that on a Windows machine, I think the command is

ipconfig

Ah makes sense. What would the equivalent windows command be to configure remote ip connections?

Did you read my complete answer? The last two lines might give you a hint.
I don't know what "configure remote IP connections" actually means but that command shows the IPs configured on your system. Of course there may be obstacles as an activated firewall or exclusive binding to the localhost interface but fixing that is better asked in a Windows or MySQL forum. Once you can access your MySQL database from another computer in your network but still don't get Arduino running this forum is the best place to ask again.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.