ARTICLE

How to Install and Securing MongoDB on Ubuntu 18.04 and 20.04

8 March 2021 by Chika Mardianatha

Many people wonder on how to install and securing MongoDB especially in Ubuntu 18.04 and 20.04. Before that, let’s define what is MongoDB.

MongoDB is a general purpose document database which stores its data in JSON-like documents. It also claimed this is the most natural way to think about data.


#JSON file example
{
  "os": "Ubuntu",
  "company": "Canonical Ltd.",
  "founder": {
    "name": "Mark Shuttleworth"
  },
  "age": "16",
  "flavours": [
    "👽︎ Kubuntu",
    "✔ Lubuntu",
    "MATE",
    "Xubuntu"
  ]
}

MongoDB has features that traditional database in Relational Database Management (RDBMS), like MariaDB and PostgreSQL don’t have or need additional steps to set up properly, such as:

  1. Expressive and Flexible, which means you can create dynamic data structure, no database schema that you have to define first. Also, MongoDB supports schema-less database where in RDBMS you have to define the schema first, and you have to follow that schema.
  2. MongoDB can be easily scale out just by adding a new server as replica which will add more READ performance.
  3. In High availability terms, MongoDB cluster can automatically fail over to active node when a Master Node is down.
## MySQL way
# initialization 
CREATE TABLE `JSON_in_RDBMS` (
   `os` VARCHAR(150) NOT NULL,
   `company` VARCHAR(150) NOT NULL,
   `founder` VARCHAR(150) NOT NULL,
   `age` INT, 
   `flavours` VARCHAR(150) NOT NULL)
ENGINE =  InnoDB;

# inserting the data
INSERT INTO `JSON_in_RDBMS` (`os`, `company`, `founder`, `age`, `flavours`) VALUES ('Ubuntu1', 'Canonical Ltd.', 'Mark Shuttleworth', '16', 'Kubuntu, Lubuntu, MATE, Xubuntu')

Installing MongoDB on Ubuntu

This tutorial will cover installation MongoDB Community Edition on 64-bit Ubuntu Linux LTS (long-term support) releases using the apt package manager, especially on the 18.04 (Bionic) and 20.04 (Focal) LTS releases on x86_64 architecture.

1. Import the public key used by the package management system.
# Make sure you have installed the gnupg package
sudo apt-get install gnupg
# Import the MongoDB public GPG Key
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
2. Create a list file for MongoDB repository
# Create the /etc/apt/sources.list.d/mongodb-org-4.4.list file for Ubuntu
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -sc)/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
# Then make sure the local package database reloaded
sudo apt-get update
3. Install MongoDB 
# Install the latest stable package
sudo apt-get install -y mongodb-org
4. Run MongoDB
# Start the process on systemd init 
sudo systemctl start mongod

5. MongoDB is up and running !

# Enable Autostart the process 
sudo systemctl enable mongod
# Restart the process 
sudo systemctl restart mongod
# Stop the process
sudo systemctl stop mongod
# Verify the process running or stopped
sudo systemctl status mongod

Securing MongoDB on Ubuntu

1. Connect to the MongoDB

# First Connect to the mongo instance
$ mongo
MongoDB shell version v4.4.3
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { “id” : UUID(“0cfcaad9-7c56-40ea-81f8-af273c014d5e”) }
MongoDB server version: 4.4.3
Welcome to the MongoDB shell.
>

2. Create the user

# Copy paste this to mongodb shell

use ubi_db
db.createUser(
{
user: “ubi_user”,
pwd: “ub1_p4ss”,
roles: [ { role: “readWrite”, db: “ubi_db” },
{ role: “read”, db: “ubi_db_other” } ]
}
)

If successfully created, it will show like this output

2. Then connect & authenticate as the user

# Inline output on mongo shell command
. > use ubi_db
switched to db ubi_db
. > db.auth(“ubi_user”, “ub1_p4ss”)
db.foo.insert({x:1})
1
. > db.foo.insert({x:1})
WriteResult({ “nInserted” : 1 })
. > use ubi_db_other
switched to db ubi_db_other
. > db.foo.find({})

0 0 vote
Article Rating

Ready to Make Something Big?

Deploy in Cloud Raya