Linux Storage

How to Install MongoDB on a Linux System

feature_image_mongo

MongoDB is an open-source, cross-platform document-oriented database application. MongoDB is a NoSQL database application that uses JSON-like documents with optional schemas. MongoDB Inc. created mongoDB and is licensed under the Server-Side Public License, which is considered non-free by numerous distributions. This article will teach you how to install and configure MongoDB on your Ubuntu 22.04 server. This setup was tested in Azure. You’ll also learn how to set up a remote connection to your MongoDB database. Other useful and related tutorials and guides can be accessed from here: How to Install Docker Portainer on Linux and How to install Zoom video conference software in Linux System and How to Set Up Flutter with Android Studio on Linux and How to install AnyDesk on a Linux Machine and How to install AnyDesk on a Linux Machine

Other insightful guides can be referenced here: How to install and configure Apache Cassandra on Linux Server and How to fix “An Attempt Was Made to Reference a Token That Does Not Exist” in Windows 10 and How to upgrade from Ubuntu 20.04 LTS to 22.04 LTS with Authentication: How to use a Fido Certified U2F Key

Prerequisites

  • A system running Ubuntu 22.04 or Higher
  • A user account with sudo privileges
  • Access to the command line/terminal

Step1: Initial Server Setup

Start by updating the server packages to the latest available:

sudo apt update
sudo apt dist-upgrade -y
upgradeable
sudo apt dist-upgrade -y

Step2: Install Required Packages

To import the key, you may need to install gnupg. It is rarely required because it may be installed by default. If you don’t already have it, you may install it using the following command.

sudo apt install gnupg
gnupg
gnupg

Install Libssl1

You need to install libssl1 to install MongoDb on Ubuntu 22.04 otherwise you will receive an error like the one below.

To install libssl1 follow the below steps

echo "deb http://security.ubuntu.com/ubuntu impish-security main" | sudo tee /etc/apt/sources.list.d/impish-security.list
sudo apt update
sudo apt install libssl1.1

You may now install MongoDB because you have installed all the prerequisite packages.

Step3: Install MongoDB

Using the apt package manager, we will install MongoDB Community Edition with LTS.

Import the public key using the following command.

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

Add the MongoDB repository to the sources list.

libss
libss
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
multi
source list

Update the packages and install MongoDB

sudo apt update
sudo apt install -y mongodb-org
mongodb
install mongodb

Once the setup is finished, enable MongoDB to start automatically when the machine boots.

sudo systemctl enable mongod
enablemongo
enable mongo

Start MongoDB server.

sudo service mongod start

The status may be seen by using the following command.

sudo service mongod status
status
status

Configure MongoDB

We can now configure MongoDB, set it up to allow remote connections, and build a new database.

Secure MongoDB

Edit MongoDB config file.

sudo vim /etc/mongod.conf

Uncomment the security section #security and enable authorization. The finished version should look like this.

security-1
blank security
security:
  authorization: enabled
security-enabled
security enabled

Enable Remote Connections

You must change the same file and add your internal or private IP address to the network interfaces to enable remote connections. Your setup should like the one shown below.

net:
  port: 27017
  bindIp: 127.0.0.1,192.168.42.51,20.127.236.51
net

Replace 192.168.142.51 with your IP address.

If you have a firewall, enable it for port 27017.

Because I am using an Azure Vm for this, I had to go to the networking section and added port 27017

Restart MongoDB for the changes to take effect.

sudo systemctl restart mongod

Using the following command, confirm whether MongoDB allows remote connections.

sudo lsof -i | grep mongo
mongod    3866         mongodb   12u  IPv4  33773      0t0  TCP instance-1.c.project_id.internal:27017 (LISTEN)
mongod    3866         mongodb   13u  IPv4  33774      0t0  TCP localhost:27017 (LISTEN)

Create MongoDB Admin User

Connect to MongoDB shell using mongosh command.

mongosh
Current Mongosh Log ID: 62948cd79def2ce0319469d5
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.4.2
Using MongoDB:          5.0.8
Using Mongosh:          1.4.2

Change to admin database.

use admin

Create admin user with all privileges and setup password.

db.createUser({user: "admin" , pwd: passwordPrompt() , roles: [{ role: "userAdminAnyDatabase" , db: "admin"}]})

When required, type your password.

Enter exit to exit the shell.

You may now connect to MongoDB using the connection string below.

mongodb://admin:password@External-IP:27017/database

MongoDB Service Commands

Start MongoDB

sudo systemctl start mongodb

Stop MongoDB

sudo systemctl stop mongodb

Disable MongoDB

sudo systemctl disable mongodb

Restart MongoDB

sudo systemctl restart mongodb

Summary

You’ve now learnt how to install and configure MongoDB on a Linux server, as well as how to configure it for remote connections.

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x