My experience with NodeJS and MariaDB on Android through Termux

The first thing I did was check the official documentation, Getting Started With the Node.js Connector

I modified my server.js code and tested and first error I encountered was, "Error: (conn=20, no: 1698, SQLState: 28000) Access denied for user 'u0_a270'@'localhost'"

At some point in troubleshooting I also got this error, "ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/data/com.termux/files/usr/tmp/mysqld.sock'"

Eventually I figured out that the problem was with the mariadb user that was created on install and how no password is required for mysql in Termux. So I just created a new user for my dev work as follows

MariaDB [db1] > CREATE USER 'user1'@localhost IDENTIFIED BY 'password1';

MariaDB [db1] > GRANT ALL PRIVILEGES ON *.* TO 'user1'@localhost IDENTIFIED BY 'password1';

Then my testing nodejs code as follows

const mariadb = require('mariadb');
const pool = mariadb.createPool({
     host: 'localhost',
     user:'user1',
     password: 'password1',
     database: 'db1',
     connectionLimit: 5
});

var http = require('http');

http.createServer(async function (req, res) {
  res.write('Device listing : ');
 
  rows = await queryDB();
 
  rows.forEach(function (row) {
  res.write(row.id + ' ' + row.name + '; '); });
 
  res.end();
}).listen(3000);

async function queryDB() {
  let conn;
  try {
conn = await pool.getConnection();
rows = await conn.query("SELECT * from devices");
  } catch (err) {
throw err;
  } finally {
if (conn) { conn.end(); return rows; }
  }
}

Man I was so happy to see this work after troubleshooting for a few hours. Hopefully this helps someone trying to get started with the same thing.

MariaDB example

Comments

Popular posts from this blog

My Experience Setting Up FLOW's TG2492LG-FLO WIFI Modem

You can sign up for Elon Musks Space X Star Link Satellite Internet from Trinidad and Tobago

My interview with Minister Hassel Bacchus