Skip to content

Arduino unable to connect to database #237

Description

@PaulRB

As recommended in the wiki documentation, I tested that I can connect to the database from a different system:

paul@paul-desktop:~$ sudo mysql -h192.168.1.201 -ugranary_sensors -ppassword --port=3306
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 122
Server version: 10.11.5-MariaDB-log Alpine Linux
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> select * from granary_sensors.granary_sensors
-> ;
ERROR 1142 (42000): SELECT command denied to user 'granary_sensors'@'paul-desktop.lan' for table `granary_sensors`.`granary_sensors`
MariaDB [(none)]> insert into granary_sensors.granary_sensors (sensor_name, sensor_value) values ('tt', -999);
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> exit
Bye

The above is as expected. I have granted permission to the user granary_sensors to insert records into only that one table, and nothing else. That is why the select command fails but the insert command succeeds. So far, great.

Next, I took the example sketch from this library, amended it with my desired details and uploaded it to a Wemos D1 Mini Pro (an ESP8266 board):

/*
MySQL Connector/Arduino Example : connect by wifi
This example demonstrates how to connect to a MySQL server from an
Arduino using an Arduino-compatible Wifi shield. Note that "compatible"
means it must conform to the Ethernet class library or be a derivative
with the same classes and methods.
For more information and documentation, visit the wiki:
https://github.com/ChuckBell/MySQL_Connector_Arduino/wiki.
INSTRUCTIONS FOR USE
1) Change the address of the server to the IP address of the MySQL server
2) Change the user and password to a valid MySQL user and password
3) Change the SSID and pass to match your WiFi network
4) Connect a USB cable to your Arduino
5) Select the correct board and port
6) Compile and upload the sketch to your Arduino
7) Once uploaded, open Serial Monitor (use 115200 speed) and observe
If you do not see messages indicating you have a connection, refer to the
manual for troubleshooting tips. The most common issues are the server is
not accessible from the network or the user name and password is incorrect.
Created by: Dr. Charles A. Bell
*/
#include <ESP8266WiFi.h> // Use this for WiFi instead of Ethernet.h
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
IPAddress server_addr(192,168,1,201); // IP of the MySQL *server* here
char user[] = "granary_sensors"; // MySQL user login username
char password[] = "password"; // MySQL user login password
// Sample query
char INSERT_SQL[] = "INSERT INTO granary_sensors.granary_sensors (sensor_name, sensor_value) VALUES ('TT', -999)";
// WiFi card example
char ssid[] = "granary"; // your SSID
char pass[] = "password"; // your SSID Password
WiFiClient client; // Use this for WiFi instead of EthernetClient
MySQL_Connection conn(&client);
MySQL_Cursor* cursor;
void setup()
{
Serial.begin(115200);
while (!Serial); // wait for serial port to connect. Needed for Leonardo only
// Begin WiFi section
Serial.printf("\nConnecting to %s", ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// print out info about the connection:
Serial.println("\nConnected to network");
Serial.print("My IP address is: ");
Serial.println(WiFi.localIP());
Serial.print("Connecting to SQL... ");
if (conn.connect(server_addr, 3306, user, password))
Serial.println("OK.");
else
Serial.println("FAILED.");
// create MySQL cursor object
cursor = new MySQL_Cursor(&conn);
}
void loop()
{
if (conn.connected())
cursor->execute(INSERT_SQL);
delay(5000);
}

I get the following error in Serial Monitor:

14:34:55.908 -> ..............
14:35:03.128 -> Connected to network
14:35:03.128 -> My IP address is: 192.168.1.76
14:35:03.128 -> Connecting to SQL... ...trying...
14:35:03.460 -> Error: 88 = Access denied for user 'granary_sensors'@'ESP-D091A2.lan' (using password: YES).
14:35:03.460 -> FAILED.

Can anyone please help me spot my error, or suggest next steps to diagnose?

Arduino IDE: 1.8.19
MySQL_Connector_Arduino library version installed: 1.2.0
ESP8266 board core version: 3.1.2

Permissions for the granary_sensors user:

paul@paul-desktop:~$ mysql -uroot -ppassword -h192.168.1.201 --port=3306
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 150
Server version: 10.11.5-MariaDB-log Alpine Linux
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SHOW GRANTS FOR granary_sensors;
+----------------------------------------------------------------------------------------------------------------+
| Grants for granary_sensors@% |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `granary_sensors`@`%` IDENTIFIED BY PASSWORD '*733B51F92EB06BE45A3761D5B53B881709A82C03' |
| GRANT INSERT ON `granary_sensors`.`granary_sensors` TO `granary_sensors`@`%` WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.001 sec)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    , 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
     blocks
    (function() {
    function addCopyButtons() {
    document.querySelectorAll('pre code').forEach(function(codeBlock) {
    if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
    codeBlock.parentElement.setAttribute('data-copy-added', 'true');
    var btn = document.createElement('button');
    btn.textContent = 'Copy';
    btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
    btn.onmouseover = function() { this.style.opacity = '1'; };
    btn.onmouseout = function() { this.style.opacity = '0.7'; };
    btn.onclick = function() {
    navigator.clipboard.writeText(codeBlock.textContent).then(function() {
    btn.textContent = 'Copied!';
    setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
    });
    };
    codeBlock.parentElement.style.position = 'relative';
    codeBlock.parentElement.appendChild(btn);
    });
    }
    addCopyButtons();
    // Re-run on dynamic content
    var observer = new MutationObserver(addCopyButtons);
    observer.observe(document.body, { childList: true, subtree: true });
    })();
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    Arduino unable to connect to database · Issue #237 · ChuckBell/MySQL_Connector_Arduino · GitHub
    Skip to content

    Arduino unable to connect to database #237

    Description

    @PaulRB

    As recommended in the wiki documentation, I tested that I can connect to the database from a different system:

    paul@paul-desktop:~$ sudo mysql -h192.168.1.201 -ugranary_sensors -ppassword --port=3306
    Welcome to the MariaDB monitor. Commands end with ; or \g.
    Your MariaDB connection id is 122
    Server version: 10.11.5-MariaDB-log Alpine Linux
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    MariaDB [(none)]> select * from granary_sensors.granary_sensors
    -> ;
    ERROR 1142 (42000): SELECT command denied to user 'granary_sensors'@'paul-desktop.lan' for table `granary_sensors`.`granary_sensors`
    MariaDB [(none)]> insert into granary_sensors.granary_sensors (sensor_name, sensor_value) values ('tt', -999);
    Query OK, 1 row affected (0.001 sec)
    MariaDB [(none)]> exit
    Bye
    

    The above is as expected. I have granted permission to the user granary_sensors to insert records into only that one table, and nothing else. That is why the select command fails but the insert command succeeds. So far, great.

    Next, I took the example sketch from this library, amended it with my desired details and uploaded it to a Wemos D1 Mini Pro (an ESP8266 board):

    /*
    MySQL Connector/Arduino Example : connect by wifi
    This example demonstrates how to connect to a MySQL server from an
    Arduino using an Arduino-compatible Wifi shield. Note that "compatible"
    means it must conform to the Ethernet class library or be a derivative
    with the same classes and methods.
    For more information and documentation, visit the wiki:
    https://github.com/ChuckBell/MySQL_Connector_Arduino/wiki.
    INSTRUCTIONS FOR USE
    1) Change the address of the server to the IP address of the MySQL server
    2) Change the user and password to a valid MySQL user and password
    3) Change the SSID and pass to match your WiFi network
    4) Connect a USB cable to your Arduino
    5) Select the correct board and port
    6) Compile and upload the sketch to your Arduino
    7) Once uploaded, open Serial Monitor (use 115200 speed) and observe
    If you do not see messages indicating you have a connection, refer to the
    manual for troubleshooting tips. The most common issues are the server is
    not accessible from the network or the user name and password is incorrect.
    Created by: Dr. Charles A. Bell
    */
    #include <ESP8266WiFi.h> // Use this for WiFi instead of Ethernet.h
    #include <MySQL_Connection.h>
    #include <MySQL_Cursor.h>
    IPAddress server_addr(192,168,1,201); // IP of the MySQL *server* here
    char user[] = "granary_sensors"; // MySQL user login username
    char password[] = "password"; // MySQL user login password
    // Sample query
    char INSERT_SQL[] = "INSERT INTO granary_sensors.granary_sensors (sensor_name, sensor_value) VALUES ('TT', -999)";
    // WiFi card example
    char ssid[] = "granary"; // your SSID
    char pass[] = "password"; // your SSID Password
    WiFiClient client; // Use this for WiFi instead of EthernetClient
    MySQL_Connection conn(&client);
    MySQL_Cursor* cursor;
    void setup()
    {
    Serial.begin(115200);
    while (!Serial); // wait for serial port to connect. Needed for Leonardo only
    // Begin WiFi section
    Serial.printf("\nConnecting to %s", ssid);
    WiFi.begin(ssid, pass);
    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    }
    // print out info about the connection:
    Serial.println("\nConnected to network");
    Serial.print("My IP address is: ");
    Serial.println(WiFi.localIP());
    Serial.print("Connecting to SQL... ");
    if (conn.connect(server_addr, 3306, user, password))
    Serial.println("OK.");
    else
    Serial.println("FAILED.");
    // create MySQL cursor object
    cursor = new MySQL_Cursor(&conn);
    }
    void loop()
    {
    if (conn.connected())
    cursor->execute(INSERT_SQL);
    delay(5000);
    }
    

    I get the following error in Serial Monitor:

    14:34:55.908 -> ..............
    14:35:03.128 -> Connected to network
    14:35:03.128 -> My IP address is: 192.168.1.76
    14:35:03.128 -> Connecting to SQL... ...trying...
    14:35:03.460 -> Error: 88 = Access denied for user 'granary_sensors'@'ESP-D091A2.lan' (using password: YES).
    14:35:03.460 -> FAILED.
    

    Can anyone please help me spot my error, or suggest next steps to diagnose?

    Arduino IDE: 1.8.19
    MySQL_Connector_Arduino library version installed: 1.2.0
    ESP8266 board core version: 3.1.2

    Permissions for the granary_sensors user:

    paul@paul-desktop:~$ mysql -uroot -ppassword -h192.168.1.201 --port=3306
    Welcome to the MariaDB monitor. Commands end with ; or \g.
    Your MariaDB connection id is 150
    Server version: 10.11.5-MariaDB-log Alpine Linux
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    MariaDB [(none)]> SHOW GRANTS FOR granary_sensors;
    +----------------------------------------------------------------------------------------------------------------+
    | Grants for granary_sensors@% |
    +----------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO `granary_sensors`@`%` IDENTIFIED BY PASSWORD '*733B51F92EB06BE45A3761D5B53B881709A82C03' |
    | GRANT INSERT ON `granary_sensors`.`granary_sensors` TO `granary_sensors`@`%` WITH GRANT OPTION |
    +----------------------------------------------------------------------------------------------------------------+
    2 rows in set (0.001 sec)
    

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      No labels
      No labels

      Projects

      No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Arduino unable to connect to database · Issue #237 · ChuckBell/MySQL_Connector_Arduino · GitHub
      Skip to content

      Arduino unable to connect to database #237

      Description

      @PaulRB

      As recommended in the wiki documentation, I tested that I can connect to the database from a different system:

      paul@paul-desktop:~$ sudo mysql -h192.168.1.201 -ugranary_sensors -ppassword --port=3306
      Welcome to the MariaDB monitor. Commands end with ; or \g.
      Your MariaDB connection id is 122
      Server version: 10.11.5-MariaDB-log Alpine Linux
      Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      MariaDB [(none)]> select * from granary_sensors.granary_sensors
      -> ;
      ERROR 1142 (42000): SELECT command denied to user 'granary_sensors'@'paul-desktop.lan' for table `granary_sensors`.`granary_sensors`
      MariaDB [(none)]> insert into granary_sensors.granary_sensors (sensor_name, sensor_value) values ('tt', -999);
      Query OK, 1 row affected (0.001 sec)
      MariaDB [(none)]> exit
      Bye
      

      The above is as expected. I have granted permission to the user granary_sensors to insert records into only that one table, and nothing else. That is why the select command fails but the insert command succeeds. So far, great.

      Next, I took the example sketch from this library, amended it with my desired details and uploaded it to a Wemos D1 Mini Pro (an ESP8266 board):

      /*
      MySQL Connector/Arduino Example : connect by wifi
      This example demonstrates how to connect to a MySQL server from an
      Arduino using an Arduino-compatible Wifi shield. Note that "compatible"
      means it must conform to the Ethernet class library or be a derivative
      with the same classes and methods.
      For more information and documentation, visit the wiki:
      https://github.com/ChuckBell/MySQL_Connector_Arduino/wiki.
      INSTRUCTIONS FOR USE
      1) Change the address of the server to the IP address of the MySQL server
      2) Change the user and password to a valid MySQL user and password
      3) Change the SSID and pass to match your WiFi network
      4) Connect a USB cable to your Arduino
      5) Select the correct board and port
      6) Compile and upload the sketch to your Arduino
      7) Once uploaded, open Serial Monitor (use 115200 speed) and observe
      If you do not see messages indicating you have a connection, refer to the
      manual for troubleshooting tips. The most common issues are the server is
      not accessible from the network or the user name and password is incorrect.
      Created by: Dr. Charles A. Bell
      */
      #include <ESP8266WiFi.h> // Use this for WiFi instead of Ethernet.h
      #include <MySQL_Connection.h>
      #include <MySQL_Cursor.h>
      IPAddress server_addr(192,168,1,201); // IP of the MySQL *server* here
      char user[] = "granary_sensors"; // MySQL user login username
      char password[] = "password"; // MySQL user login password
      // Sample query
      char INSERT_SQL[] = "INSERT INTO granary_sensors.granary_sensors (sensor_name, sensor_value) VALUES ('TT', -999)";
      // WiFi card example
      char ssid[] = "granary"; // your SSID
      char pass[] = "password"; // your SSID Password
      WiFiClient client; // Use this for WiFi instead of EthernetClient
      MySQL_Connection conn(&client);
      MySQL_Cursor* cursor;
      void setup()
      {
      Serial.begin(115200);
      while (!Serial); // wait for serial port to connect. Needed for Leonardo only
      // Begin WiFi section
      Serial.printf("\nConnecting to %s", ssid);
      WiFi.begin(ssid, pass);
      while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
      }
      // print out info about the connection:
      Serial.println("\nConnected to network");
      Serial.print("My IP address is: ");
      Serial.println(WiFi.localIP());
      Serial.print("Connecting to SQL... ");
      if (conn.connect(server_addr, 3306, user, password))
      Serial.println("OK.");
      else
      Serial.println("FAILED.");
      // create MySQL cursor object
      cursor = new MySQL_Cursor(&conn);
      }
      void loop()
      {
      if (conn.connected())
      cursor->execute(INSERT_SQL);
      delay(5000);
      }
      

      I get the following error in Serial Monitor:

      14:34:55.908 -> ..............
      14:35:03.128 -> Connected to network
      14:35:03.128 -> My IP address is: 192.168.1.76
      14:35:03.128 -> Connecting to SQL... ...trying...
      14:35:03.460 -> Error: 88 = Access denied for user 'granary_sensors'@'ESP-D091A2.lan' (using password: YES).
      14:35:03.460 -> FAILED.
      

      Can anyone please help me spot my error, or suggest next steps to diagnose?

      Arduino IDE: 1.8.19
      MySQL_Connector_Arduino library version installed: 1.2.0
      ESP8266 board core version: 3.1.2

      Permissions for the granary_sensors user:

      paul@paul-desktop:~$ mysql -uroot -ppassword -h192.168.1.201 --port=3306
      Welcome to the MariaDB monitor. Commands end with ; or \g.
      Your MariaDB connection id is 150
      Server version: 10.11.5-MariaDB-log Alpine Linux
      Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      MariaDB [(none)]> SHOW GRANTS FOR granary_sensors;
      +----------------------------------------------------------------------------------------------------------------+
      | Grants for granary_sensors@% |
      +----------------------------------------------------------------------------------------------------------------+
      | GRANT USAGE ON *.* TO `granary_sensors`@`%` IDENTIFIED BY PASSWORD '*733B51F92EB06BE45A3761D5B53B881709A82C03' |
      | GRANT INSERT ON `granary_sensors`.`granary_sensors` TO `granary_sensors`@`%` WITH GRANT OPTION |
      +----------------------------------------------------------------------------------------------------------------+
      2 rows in set (0.001 sec)
      

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        No labels
        No labels

        Projects

        No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions

        , 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Arduino unable to connect to database · Issue #237 · ChuckBell/MySQL_Connector_Arduino · GitHub
        Skip to content

        Arduino unable to connect to database #237

        Description

        @PaulRB

        As recommended in the wiki documentation, I tested that I can connect to the database from a different system:

        paul@paul-desktop:~$ sudo mysql -h192.168.1.201 -ugranary_sensors -ppassword --port=3306
        Welcome to the MariaDB monitor. Commands end with ; or \g.
        Your MariaDB connection id is 122
        Server version: 10.11.5-MariaDB-log Alpine Linux
        Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
        Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
        MariaDB [(none)]> select * from granary_sensors.granary_sensors
        -> ;
        ERROR 1142 (42000): SELECT command denied to user 'granary_sensors'@'paul-desktop.lan' for table `granary_sensors`.`granary_sensors`
        MariaDB [(none)]> insert into granary_sensors.granary_sensors (sensor_name, sensor_value) values ('tt', -999);
        Query OK, 1 row affected (0.001 sec)
        MariaDB [(none)]> exit
        Bye
        

        The above is as expected. I have granted permission to the user granary_sensors to insert records into only that one table, and nothing else. That is why the select command fails but the insert command succeeds. So far, great.

        Next, I took the example sketch from this library, amended it with my desired details and uploaded it to a Wemos D1 Mini Pro (an ESP8266 board):

        /*
        MySQL Connector/Arduino Example : connect by wifi
        This example demonstrates how to connect to a MySQL server from an
        Arduino using an Arduino-compatible Wifi shield. Note that "compatible"
        means it must conform to the Ethernet class library or be a derivative
        with the same classes and methods.
        For more information and documentation, visit the wiki:
        https://github.com/ChuckBell/MySQL_Connector_Arduino/wiki.
        INSTRUCTIONS FOR USE
        1) Change the address of the server to the IP address of the MySQL server
        2) Change the user and password to a valid MySQL user and password
        3) Change the SSID and pass to match your WiFi network
        4) Connect a USB cable to your Arduino
        5) Select the correct board and port
        6) Compile and upload the sketch to your Arduino
        7) Once uploaded, open Serial Monitor (use 115200 speed) and observe
        If you do not see messages indicating you have a connection, refer to the
        manual for troubleshooting tips. The most common issues are the server is
        not accessible from the network or the user name and password is incorrect.
        Created by: Dr. Charles A. Bell
        */
        #include <ESP8266WiFi.h> // Use this for WiFi instead of Ethernet.h
        #include <MySQL_Connection.h>
        #include <MySQL_Cursor.h>
        IPAddress server_addr(192,168,1,201); // IP of the MySQL *server* here
        char user[] = "granary_sensors"; // MySQL user login username
        char password[] = "password"; // MySQL user login password
        // Sample query
        char INSERT_SQL[] = "INSERT INTO granary_sensors.granary_sensors (sensor_name, sensor_value) VALUES ('TT', -999)";
        // WiFi card example
        char ssid[] = "granary"; // your SSID
        char pass[] = "password"; // your SSID Password
        WiFiClient client; // Use this for WiFi instead of EthernetClient
        MySQL_Connection conn(&client);
        MySQL_Cursor* cursor;
        void setup()
        {
        Serial.begin(115200);
        while (!Serial); // wait for serial port to connect. Needed for Leonardo only
        // Begin WiFi section
        Serial.printf("\nConnecting to %s", ssid);
        WiFi.begin(ssid, pass);
        while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
        }
        // print out info about the connection:
        Serial.println("\nConnected to network");
        Serial.print("My IP address is: ");
        Serial.println(WiFi.localIP());
        Serial.print("Connecting to SQL... ");
        if (conn.connect(server_addr, 3306, user, password))
        Serial.println("OK.");
        else
        Serial.println("FAILED.");
        // create MySQL cursor object
        cursor = new MySQL_Cursor(&conn);
        }
        void loop()
        {
        if (conn.connected())
        cursor->execute(INSERT_SQL);
        delay(5000);
        }
        

        I get the following error in Serial Monitor:

        14:34:55.908 -> ..............
        14:35:03.128 -> Connected to network
        14:35:03.128 -> My IP address is: 192.168.1.76
        14:35:03.128 -> Connecting to SQL... ...trying...
        14:35:03.460 -> Error: 88 = Access denied for user 'granary_sensors'@'ESP-D091A2.lan' (using password: YES).
        14:35:03.460 -> FAILED.
        

        Can anyone please help me spot my error, or suggest next steps to diagnose?

        Arduino IDE: 1.8.19
        MySQL_Connector_Arduino library version installed: 1.2.0
        ESP8266 board core version: 3.1.2

        Permissions for the granary_sensors user:

        paul@paul-desktop:~$ mysql -uroot -ppassword -h192.168.1.201 --port=3306
        Welcome to the MariaDB monitor. Commands end with ; or \g.
        Your MariaDB connection id is 150
        Server version: 10.11.5-MariaDB-log Alpine Linux
        Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
        Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
        MariaDB [(none)]> SHOW GRANTS FOR granary_sensors;
        +----------------------------------------------------------------------------------------------------------------+
        | Grants for granary_sensors@% |
        +----------------------------------------------------------------------------------------------------------------+
        | GRANT USAGE ON *.* TO `granary_sensors`@`%` IDENTIFIED BY PASSWORD '*733B51F92EB06BE45A3761D5B53B881709A82C03' |
        | GRANT INSERT ON `granary_sensors`.`granary_sensors` TO `granary_sensors`@`%` WITH GRANT OPTION |
        +----------------------------------------------------------------------------------------------------------------+
        2 rows in set (0.001 sec)
        

        Metadata

        Metadata

        Assignees

        No one assigned

          Labels

          No labels
          No labels

          Projects

          No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Arduino unable to connect to database · Issue #237 · ChuckBell/MySQL_Connector_Arduino · GitHub
          Skip to content

          Arduino unable to connect to database #237

          Description

          @PaulRB

          As recommended in the wiki documentation, I tested that I can connect to the database from a different system:

          paul@paul-desktop:~$ sudo mysql -h192.168.1.201 -ugranary_sensors -ppassword --port=3306
          Welcome to the MariaDB monitor. Commands end with ; or \g.
          Your MariaDB connection id is 122
          Server version: 10.11.5-MariaDB-log Alpine Linux
          Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
          Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
          MariaDB [(none)]> select * from granary_sensors.granary_sensors
          -> ;
          ERROR 1142 (42000): SELECT command denied to user 'granary_sensors'@'paul-desktop.lan' for table `granary_sensors`.`granary_sensors`
          MariaDB [(none)]> insert into granary_sensors.granary_sensors (sensor_name, sensor_value) values ('tt', -999);
          Query OK, 1 row affected (0.001 sec)
          MariaDB [(none)]> exit
          Bye
          

          The above is as expected. I have granted permission to the user granary_sensors to insert records into only that one table, and nothing else. That is why the select command fails but the insert command succeeds. So far, great.

          Next, I took the example sketch from this library, amended it with my desired details and uploaded it to a Wemos D1 Mini Pro (an ESP8266 board):

          /*
          MySQL Connector/Arduino Example : connect by wifi
          This example demonstrates how to connect to a MySQL server from an
          Arduino using an Arduino-compatible Wifi shield. Note that "compatible"
          means it must conform to the Ethernet class library or be a derivative
          with the same classes and methods.
          For more information and documentation, visit the wiki:
          https://github.com/ChuckBell/MySQL_Connector_Arduino/wiki.
          INSTRUCTIONS FOR USE
          1) Change the address of the server to the IP address of the MySQL server
          2) Change the user and password to a valid MySQL user and password
          3) Change the SSID and pass to match your WiFi network
          4) Connect a USB cable to your Arduino
          5) Select the correct board and port
          6) Compile and upload the sketch to your Arduino
          7) Once uploaded, open Serial Monitor (use 115200 speed) and observe
          If you do not see messages indicating you have a connection, refer to the
          manual for troubleshooting tips. The most common issues are the server is
          not accessible from the network or the user name and password is incorrect.
          Created by: Dr. Charles A. Bell
          */
          #include <ESP8266WiFi.h> // Use this for WiFi instead of Ethernet.h
          #include <MySQL_Connection.h>
          #include <MySQL_Cursor.h>
          IPAddress server_addr(192,168,1,201); // IP of the MySQL *server* here
          char user[] = "granary_sensors"; // MySQL user login username
          char password[] = "password"; // MySQL user login password
          // Sample query
          char INSERT_SQL[] = "INSERT INTO granary_sensors.granary_sensors (sensor_name, sensor_value) VALUES ('TT', -999)";
          // WiFi card example
          char ssid[] = "granary"; // your SSID
          char pass[] = "password"; // your SSID Password
          WiFiClient client; // Use this for WiFi instead of EthernetClient
          MySQL_Connection conn(&client);
          MySQL_Cursor* cursor;
          void setup()
          {
          Serial.begin(115200);
          while (!Serial); // wait for serial port to connect. Needed for Leonardo only
          // Begin WiFi section
          Serial.printf("\nConnecting to %s", ssid);
          WiFi.begin(ssid, pass);
          while (WiFi.status() != WL_CONNECTED) {
          delay(500);
          Serial.print(".");
          }
          // print out info about the connection:
          Serial.println("\nConnected to network");
          Serial.print("My IP address is: ");
          Serial.println(WiFi.localIP());
          Serial.print("Connecting to SQL... ");
          if (conn.connect(server_addr, 3306, user, password))
          Serial.println("OK.");
          else
          Serial.println("FAILED.");
          // create MySQL cursor object
          cursor = new MySQL_Cursor(&conn);
          }
          void loop()
          {
          if (conn.connected())
          cursor->execute(INSERT_SQL);
          delay(5000);
          }
          

          I get the following error in Serial Monitor:

          14:34:55.908 -> ..............
          14:35:03.128 -> Connected to network
          14:35:03.128 -> My IP address is: 192.168.1.76
          14:35:03.128 -> Connecting to SQL... ...trying...
          14:35:03.460 -> Error: 88 = Access denied for user 'granary_sensors'@'ESP-D091A2.lan' (using password: YES).
          14:35:03.460 -> FAILED.
          

          Can anyone please help me spot my error, or suggest next steps to diagnose?

          Arduino IDE: 1.8.19
          MySQL_Connector_Arduino library version installed: 1.2.0
          ESP8266 board core version: 3.1.2

          Permissions for the granary_sensors user:

          paul@paul-desktop:~$ mysql -uroot -ppassword -h192.168.1.201 --port=3306
          Welcome to the MariaDB monitor. Commands end with ; or \g.
          Your MariaDB connection id is 150
          Server version: 10.11.5-MariaDB-log Alpine Linux
          Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
          Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
          MariaDB [(none)]> SHOW GRANTS FOR granary_sensors;
          +----------------------------------------------------------------------------------------------------------------+
          | Grants for granary_sensors@% |
          +----------------------------------------------------------------------------------------------------------------+
          | GRANT USAGE ON *.* TO `granary_sensors`@`%` IDENTIFIED BY PASSWORD '*733B51F92EB06BE45A3761D5B53B881709A82C03' |
          | GRANT INSERT ON `granary_sensors`.`granary_sensors` TO `granary_sensors`@`%` WITH GRANT OPTION |
          +----------------------------------------------------------------------------------------------------------------+
          2 rows in set (0.001 sec)
          

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            No labels
            No labels

            Projects

            No projects

            Milestone

            No milestone

            Relationships

            None yet

            Development

            No branches or pull requests

            Issue actions

            , 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Arduino unable to connect to database · Issue #237 · ChuckBell/MySQL_Connector_Arduino · GitHub
            Skip to content

            Arduino unable to connect to database #237

            Description

            @PaulRB

            As recommended in the wiki documentation, I tested that I can connect to the database from a different system:

            paul@paul-desktop:~$ sudo mysql -h192.168.1.201 -ugranary_sensors -ppassword --port=3306
            Welcome to the MariaDB monitor. Commands end with ; or \g.
            Your MariaDB connection id is 122
            Server version: 10.11.5-MariaDB-log Alpine Linux
            Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
            Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
            MariaDB [(none)]> select * from granary_sensors.granary_sensors
            -> ;
            ERROR 1142 (42000): SELECT command denied to user 'granary_sensors'@'paul-desktop.lan' for table `granary_sensors`.`granary_sensors`
            MariaDB [(none)]> insert into granary_sensors.granary_sensors (sensor_name, sensor_value) values ('tt', -999);
            Query OK, 1 row affected (0.001 sec)
            MariaDB [(none)]> exit
            Bye
            

            The above is as expected. I have granted permission to the user granary_sensors to insert records into only that one table, and nothing else. That is why the select command fails but the insert command succeeds. So far, great.

            Next, I took the example sketch from this library, amended it with my desired details and uploaded it to a Wemos D1 Mini Pro (an ESP8266 board):

            /*
            MySQL Connector/Arduino Example : connect by wifi
            This example demonstrates how to connect to a MySQL server from an
            Arduino using an Arduino-compatible Wifi shield. Note that "compatible"
            means it must conform to the Ethernet class library or be a derivative
            with the same classes and methods.
            For more information and documentation, visit the wiki:
            https://github.com/ChuckBell/MySQL_Connector_Arduino/wiki.
            INSTRUCTIONS FOR USE
            1) Change the address of the server to the IP address of the MySQL server
            2) Change the user and password to a valid MySQL user and password
            3) Change the SSID and pass to match your WiFi network
            4) Connect a USB cable to your Arduino
            5) Select the correct board and port
            6) Compile and upload the sketch to your Arduino
            7) Once uploaded, open Serial Monitor (use 115200 speed) and observe
            If you do not see messages indicating you have a connection, refer to the
            manual for troubleshooting tips. The most common issues are the server is
            not accessible from the network or the user name and password is incorrect.
            Created by: Dr. Charles A. Bell
            */
            #include <ESP8266WiFi.h> // Use this for WiFi instead of Ethernet.h
            #include <MySQL_Connection.h>
            #include <MySQL_Cursor.h>
            IPAddress server_addr(192,168,1,201); // IP of the MySQL *server* here
            char user[] = "granary_sensors"; // MySQL user login username
            char password[] = "password"; // MySQL user login password
            // Sample query
            char INSERT_SQL[] = "INSERT INTO granary_sensors.granary_sensors (sensor_name, sensor_value) VALUES ('TT', -999)";
            // WiFi card example
            char ssid[] = "granary"; // your SSID
            char pass[] = "password"; // your SSID Password
            WiFiClient client; // Use this for WiFi instead of EthernetClient
            MySQL_Connection conn(&client);
            MySQL_Cursor* cursor;
            void setup()
            {
            Serial.begin(115200);
            while (!Serial); // wait for serial port to connect. Needed for Leonardo only
            // Begin WiFi section
            Serial.printf("\nConnecting to %s", ssid);
            WiFi.begin(ssid, pass);
            while (WiFi.status() != WL_CONNECTED) {
            delay(500);
            Serial.print(".");
            }
            // print out info about the connection:
            Serial.println("\nConnected to network");
            Serial.print("My IP address is: ");
            Serial.println(WiFi.localIP());
            Serial.print("Connecting to SQL... ");
            if (conn.connect(server_addr, 3306, user, password))
            Serial.println("OK.");
            else
            Serial.println("FAILED.");
            // create MySQL cursor object
            cursor = new MySQL_Cursor(&conn);
            }
            void loop()
            {
            if (conn.connected())
            cursor->execute(INSERT_SQL);
            delay(5000);
            }
            

            I get the following error in Serial Monitor:

            14:34:55.908 -> ..............
            14:35:03.128 -> Connected to network
            14:35:03.128 -> My IP address is: 192.168.1.76
            14:35:03.128 -> Connecting to SQL... ...trying...
            14:35:03.460 -> Error: 88 = Access denied for user 'granary_sensors'@'ESP-D091A2.lan' (using password: YES).
            14:35:03.460 -> FAILED.
            

            Can anyone please help me spot my error, or suggest next steps to diagnose?

            Arduino IDE: 1.8.19
            MySQL_Connector_Arduino library version installed: 1.2.0
            ESP8266 board core version: 3.1.2

            Permissions for the granary_sensors user:

            paul@paul-desktop:~$ mysql -uroot -ppassword -h192.168.1.201 --port=3306
            Welcome to the MariaDB monitor. Commands end with ; or \g.
            Your MariaDB connection id is 150
            Server version: 10.11.5-MariaDB-log Alpine Linux
            Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
            Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
            MariaDB [(none)]> SHOW GRANTS FOR granary_sensors;
            +----------------------------------------------------------------------------------------------------------------+
            | Grants for granary_sensors@% |
            +----------------------------------------------------------------------------------------------------------------+
            | GRANT USAGE ON *.* TO `granary_sensors`@`%` IDENTIFIED BY PASSWORD '*733B51F92EB06BE45A3761D5B53B881709A82C03' |
            | GRANT INSERT ON `granary_sensors`.`granary_sensors` TO `granary_sensors`@`%` WITH GRANT OPTION |
            +----------------------------------------------------------------------------------------------------------------+
            2 rows in set (0.001 sec)
            

            Metadata

            Metadata

            Assignees

            No one assigned

              Labels

              No labels
              No labels

              Projects

              No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Arduino unable to connect to database · Issue #237 · ChuckBell/MySQL_Connector_Arduino · GitHub
              Skip to content

              Arduino unable to connect to database #237

              Description

              @PaulRB

              As recommended in the wiki documentation, I tested that I can connect to the database from a different system:

              paul@paul-desktop:~$ sudo mysql -h192.168.1.201 -ugranary_sensors -ppassword --port=3306
              Welcome to the MariaDB monitor. Commands end with ; or \g.
              Your MariaDB connection id is 122
              Server version: 10.11.5-MariaDB-log Alpine Linux
              Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
              Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
              MariaDB [(none)]> select * from granary_sensors.granary_sensors
              -> ;
              ERROR 1142 (42000): SELECT command denied to user 'granary_sensors'@'paul-desktop.lan' for table `granary_sensors`.`granary_sensors`
              MariaDB [(none)]> insert into granary_sensors.granary_sensors (sensor_name, sensor_value) values ('tt', -999);
              Query OK, 1 row affected (0.001 sec)
              MariaDB [(none)]> exit
              Bye
              

              The above is as expected. I have granted permission to the user granary_sensors to insert records into only that one table, and nothing else. That is why the select command fails but the insert command succeeds. So far, great.

              Next, I took the example sketch from this library, amended it with my desired details and uploaded it to a Wemos D1 Mini Pro (an ESP8266 board):

              /*
              MySQL Connector/Arduino Example : connect by wifi
              This example demonstrates how to connect to a MySQL server from an
              Arduino using an Arduino-compatible Wifi shield. Note that "compatible"
              means it must conform to the Ethernet class library or be a derivative
              with the same classes and methods.
              For more information and documentation, visit the wiki:
              https://github.com/ChuckBell/MySQL_Connector_Arduino/wiki.
              INSTRUCTIONS FOR USE
              1) Change the address of the server to the IP address of the MySQL server
              2) Change the user and password to a valid MySQL user and password
              3) Change the SSID and pass to match your WiFi network
              4) Connect a USB cable to your Arduino
              5) Select the correct board and port
              6) Compile and upload the sketch to your Arduino
              7) Once uploaded, open Serial Monitor (use 115200 speed) and observe
              If you do not see messages indicating you have a connection, refer to the
              manual for troubleshooting tips. The most common issues are the server is
              not accessible from the network or the user name and password is incorrect.
              Created by: Dr. Charles A. Bell
              */
              #include <ESP8266WiFi.h> // Use this for WiFi instead of Ethernet.h
              #include <MySQL_Connection.h>
              #include <MySQL_Cursor.h>
              IPAddress server_addr(192,168,1,201); // IP of the MySQL *server* here
              char user[] = "granary_sensors"; // MySQL user login username
              char password[] = "password"; // MySQL user login password
              // Sample query
              char INSERT_SQL[] = "INSERT INTO granary_sensors.granary_sensors (sensor_name, sensor_value) VALUES ('TT', -999)";
              // WiFi card example
              char ssid[] = "granary"; // your SSID
              char pass[] = "password"; // your SSID Password
              WiFiClient client; // Use this for WiFi instead of EthernetClient
              MySQL_Connection conn(&client);
              MySQL_Cursor* cursor;
              void setup()
              {
              Serial.begin(115200);
              while (!Serial); // wait for serial port to connect. Needed for Leonardo only
              // Begin WiFi section
              Serial.printf("\nConnecting to %s", ssid);
              WiFi.begin(ssid, pass);
              while (WiFi.status() != WL_CONNECTED) {
              delay(500);
              Serial.print(".");
              }
              // print out info about the connection:
              Serial.println("\nConnected to network");
              Serial.print("My IP address is: ");
              Serial.println(WiFi.localIP());
              Serial.print("Connecting to SQL... ");
              if (conn.connect(server_addr, 3306, user, password))
              Serial.println("OK.");
              else
              Serial.println("FAILED.");
              // create MySQL cursor object
              cursor = new MySQL_Cursor(&conn);
              }
              void loop()
              {
              if (conn.connected())
              cursor->execute(INSERT_SQL);
              delay(5000);
              }
              

              I get the following error in Serial Monitor:

              14:34:55.908 -> ..............
              14:35:03.128 -> Connected to network
              14:35:03.128 -> My IP address is: 192.168.1.76
              14:35:03.128 -> Connecting to SQL... ...trying...
              14:35:03.460 -> Error: 88 = Access denied for user 'granary_sensors'@'ESP-D091A2.lan' (using password: YES).
              14:35:03.460 -> FAILED.
              

              Can anyone please help me spot my error, or suggest next steps to diagnose?

              Arduino IDE: 1.8.19
              MySQL_Connector_Arduino library version installed: 1.2.0
              ESP8266 board core version: 3.1.2

              Permissions for the granary_sensors user:

              paul@paul-desktop:~$ mysql -uroot -ppassword -h192.168.1.201 --port=3306
              Welcome to the MariaDB monitor. Commands end with ; or \g.
              Your MariaDB connection id is 150
              Server version: 10.11.5-MariaDB-log Alpine Linux
              Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
              Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
              MariaDB [(none)]> SHOW GRANTS FOR granary_sensors;
              +----------------------------------------------------------------------------------------------------------------+
              | Grants for granary_sensors@% |
              +----------------------------------------------------------------------------------------------------------------+
              | GRANT USAGE ON *.* TO `granary_sensors`@`%` IDENTIFIED BY PASSWORD '*733B51F92EB06BE45A3761D5B53B881709A82C03' |
              | GRANT INSERT ON `granary_sensors`.`granary_sensors` TO `granary_sensors`@`%` WITH GRANT OPTION |
              +----------------------------------------------------------------------------------------------------------------+
              2 rows in set (0.001 sec)
              

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                No labels
                No labels

                Projects

                No projects

                Milestone

                No milestone

                Relationships

                None yet

                Development

                No branches or pull requests

                Issue actions