NodeJS MariaDB Integration: 3 Easy Steps

• May 20th, 2021

MariaDB and Node.js are both robust iterations of existing software and development environments respectively. Both have been developed for target causes and have evolved to be popularly used in different database and JavaScript programming set-ups. NodeJS MariaDB Integration is an innovative process to make the best use of both technologies and help in the data mapping and data transformation process.

NodeJS is a cross-platform, Open-Source, and back-end JavaScript runtime environment that uses a V8 engine to execute JavaScript code outside a web browser. It is mostly used in building scalable web pages. MariaDB is a fork of the original RDBMS (Relational Database Management System), MySQL. It is also an RDBMS and offers data processing features for all types of tasks, including small and enterprise tasks. By setting up NodeJS MariaDB Integration, you can combine the flexible NodeJS platform with a traditional RDBMS like MariaDB.

This article provides a step-by-step guide on setting up NodeJS MariaDB Integration. It also gives a brief overview of both NodeJS and MariaDB, so that you can better understand them. Finally, it highlights few limitations of this process. Read along how you can set up NodeJS MariaDB Integration for your organization.

Table of Contents

Introduction to MariaDB

MariaDB Logo
Image Source

MariaDB is open-source software that extends a full-featured package with an SQL interface for data assessment. It was created by original MySQL developers with the goal of combining a load of data processing and other enterprise-level requirements. 

The MariaDB services and functioning along with tools used for the same are illustrated in the below figure:

MariaDB Tools & Services
Image Source

Key Features of MariaDB

Some key features of MariaDB make it stand out as a robust option for target querying and processing purposes. These include:

  • MariaDB employs a standard and popular querying language and is under GPL, BSD, and LGPL.
  • It runs on a wide number of operating systems while also facilitating various programming languages.
  • With a range of high-performance storage engines, MariaDB can be easily used in tandem with other RDBMS data sources. 
  • It offers PHP support and Galera cluster technology.
  • With MariaDB, a range of available commands and operations absent in MySQL can be accessed along with other high-performance features. 

To learn more about MariaDB, click this link.

Introduction to NodeJS

Node JS Logo
Image Source

NodeJS is a popular JavaScript runtime environment that is typically used for the benefits of executing a JavaScript code even outside the browser space. Commands and code can be written for the server-side where scripts can be run to render a dynamic web page even before the user’s browser loads the page. 

The functioning of NodeJS can be illustrated in the given figure as follows:

NodeJS MariaDB Integration: NodeJS Event Loop
Image Source

Thus, NodeJS is commonly used for event-driven servers, websites, and active back-end API services.  Operating on readable and writable channels readily, the benefits of NodeJS can be combined with those of MariaDB with an integration setup. 

Simplify MariaDB Data Analysis using Hevo’s No-code Data Pipeline

Hevo Data, a No-code Data Pipeline helps to load data from any data source such as Databases, SaaS applications, Cloud Storage, SDK,s, and Streaming Services and simplifies the ETL process. It supports MariaDB, along with 100+ data sources (including 30+ free data sources), and is a 3-step process by just selecting the data source, providing valid credentials, and choosing the destination. Hevo not only loads the data onto the desired Data Warehouse but also enriches the data and transforms it into an analysis-ready form without having to write a single line of code.

Its completely automated pipeline offers data to be delivered in real-time without any loss from source to destination. Its fault-tolerant and scalable architecture ensure that the data is handled in a secure, consistent manner with zero data loss and supports different forms of data. The solutions provided are consistent and work with different BI tools as well.

Check out why Hevo is the Best:

  • Secure: Hevo has a fault-tolerant architecture that ensures that the data is handled in a secure, consistent manner with zero data loss.
  • Schema Management: Hevo takes away the tedious task of schema management & automatically detects the schema of incoming data and maps it to the destination schema.
  • Minimal Learning: Hevo, with its simple and interactive UI, is extremely simple for new customers to work on and perform operations.
  • Hevo Is Built To Scale: As the number of sources and the volume of your data grows, Hevo scales horizontally, handling millions of records per minute with very little latency.
  • Incremental Data Load: Hevo allows the transfer of data that has been modified in real-time. This ensures efficient utilization of bandwidth on both ends.
  • Live Support: The Hevo team is available round the clock to extend exceptional support to its customers through chat, email, and support calls.
  • Live Monitoring: Hevo allows you to monitor the data flow and check where your data is at a particular point in time.

Simplify your Data Analysis with Hevo today! Sign up here for a 14-day free trial!

Steps to Set Up NodeJS MariaDB Integration

Now that you have a good idea of both NodeJS and MariaDB, it is time to set up the NodeJS MariaDB Integration. To integrate MariaDB with NodeJS, you need to access the MariaDB NodeJS connector through the NodeJS repositories. You can follow these steps to go through with the integration:

Step 1: Installing the NodeJS MariaDB Connector

The first step in setting up the NodeJS MariaDB Integration is accessing the NodeJS console and installing the NodeJS MariaDB Connector. This is done by running the below command.

$ npm install MariaDB

Step 2: Handling any Exceptions in the NodeJS MariaDB Process

The next step is to handle any exceptions that can occur in the integration process. This is done by executing the below script.

const mariadb = require('mariadb');
const pool = mariadb.createPool({
     host: 'mydb.com', 
     user:'myUser', 
     password: 'myPassword',
     connectionLimit: 5
});
pool.getConnection()
    .then(conn => {
    
      conn.query("SELECT 1 as val")
        .then((rows) => {
          console.log(rows); //[ {val: 1}, meta: ... ]
          //Table must have been created before 
          // " CREATE TABLE myTable (id int, val varchar(255)) "
          return conn.query("INSERT INTO myTable value (?, ?)", [1, "mariadb"]);
        })
        .then((res) => {
          console.log(res); // { affectedRows: 1, insertId: 1, warningStatus: 0 }
          conn.end();
        })
        .catch(err => {
          //handle error
          console.log(err); 
          conn.end();
        })
        
    }).catch(err => {
      //not connected
    });

Step 3: Connecting NodeJS with the MariaDB Database

After handling all the exceptions that can occur, the final step is to connect NodeJS with the MariaDB database. You can do this by executing the below script.

const mariadb = require('mariadb');
const pool = mariadb.createPool({
     host: 'mydb.com', 
     user:'myUser', 
     password: 'myPassword',
     connectionLimit: 5
});
async function asyncFunction() {
  let conn;
  try {
	conn = await pool.getConnection();
	const rows = await conn.query("SELECT 1 as val");
	console.log(rows); //[ {val: 1}, meta: ... ]
	const res = await conn.query("INSERT INTO myTable value (?, ?)", [1, "mariadb"]);
	console.log(res); // { affectedRows: 1, insertId: 1, warningStatus: 0 }

  } catch (err) {
	throw err;
  } finally {
	if (conn) return conn.end();
  }
}

Thats it! You have successfully set up NodeJS MongoDB Integration for your organization! While the process to carry out this integration is fairly simple, there are some challenges and limitations that come with the setup.

Limitations of the NodeJS MariaDB Integration Process

Some common challenges and errors facing in the NodeJS MariaDB Integration process are:

  • A mismatch error for the Hostname/Ip that doesn’t match the alt names of the certificate. This error is seen in the below command.
Hostname/IP doesn't match certificate's alt names: "Host: other.example.com. is not cert's CN: mariadb.example.com"

To rectify this error, you need to fix the hist value to the correct value corresponding to the host in the certificate.

  • The error routine is observed as ssl_choose_client_version: unsupported protocol.

This can be solved by updating your MariaDB version to the latest one on the server-side. You can also update permit the use of the lower version on the client-side to resolve this issue. This is shown by executing the below code.

tls.DEFAULT_MIN_VERSION = 'TLSv1.1'; or ssl: { secureProtocol: 'TLSv1_1_method' }

This code will allow you to use a lower version of MariaDB.

Other than these challenges, the limitations offered by such integration are that of manual errors and update procedures that cannot be readily integrated with a manual system.

Conclusion

This article provided you a step-by-step guide in setting up NodeJS MariaDB Integration. It also gave you a brief overview of both MariaDB and NodeJS and also highlighted the limitations in this process. Overall, both MariaDB and NodeJS offer various benefits and use-cases independently, and even more layered features when used together. The quick use of a connector can help integrate MariaDB and Node.js by using scripts to install and set up the connection.

In case you want to integrate data from data sources into your desired Database/destination like MariaDB and seamlessly visualize it in a BI tool of your choice, then Hevo Data is the right choice for you! It will help simplify the ETL and management process of both the data sources and destinations.

Want to take Hevo for a spin? Sign up here for a 14-day free trial and experience the feature-rich Hevo suite first hand.

Share your experience of setting up NodeJS MariaDB Integration in the comments section below.

No-code Data Pipeline For MariaDB