In this tutorial guide, we are going to learn how to install MongoDB 5.0 on Rocky Linux.
MongoDB is an open-source NoSQL database that provides high throughput for data-driven applications. Unlike relational databases such as MySQL, Oracle, and SQL servers which store data in tables according to a rigid schema, MongoDB stores data in documents with flexible schema.
Why do we need MongoDB?
- MongoDB makes it easy for developers to store structured or unstructured data, it uses JSON-like format to store documents. This format directly maps to native objects in most programming languages, making natural database for most developers.
- MongoDB is built on a scale-out architecture making popular for developers developing scalable applications with evolving data schemas.
- MongoDB is available in every major public cloud provider such as Azure, AWS, GCP making it easy for developers to deploy to any cloud provider of choice.
- MongoDB supports rapid iterative development where developers collaborate with larger teams.
- In MongoDB records are stored as documents in compressed BSON files.
MongoDB documents can be retrieved in JSON formats which has many benefits such as:
- It is human readable, makes it easy to be read
- It is a natural form to store data
- You can nest JSON to store complex data objects.
- Documents maps to objects in most popular programming languages.
- Structured and unstructured information can be stored in the same document
- JSON has a flexible and dynamic schema, so adding fields or leaving a field out is not a problem.
Prerequisites
- Have Rocky Linux server running
- Have a user with sudo priviliges
- MongoDB only supports 64 bits version of Linux, so make sure you are running x64.
Related Articles
- How to Install MongoDB with Podman on Rocky Linux 8
- How to install MongoDB 4.4 on Fedora 35
- How to Deploy MongoDB with Docker
- How to install MongoDB 5 on Ubuntu 21.04
- How to Install MongoDB 5 on Ubuntu 20.04
Install MongoDB 5 on Rocky Linux
1. Run system updates
To begin with we need to make our system repositories up to date. This will help avoid running into errors while doing the installations.
$ sudo dnf update -y
2. Configure package management (yum)
The easy way to install Mongo is to create /etc/yum.repos.d/mongodb-org-5.0.repo file so that we can easily install using the yum repository.
$ sudo vi /etc/yum.repos.d/mongodb-org-5.0.repo
Add the following content ;
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
3. Install MongoDB 5 on Rocky Linux
Now we can install the latest version of MongoDB with the following
$ sudo dnf install mongodb-org -y
We will see the following output
MongoDB Repository 42 kB/s | 16 kB 00:00
Dependencies resolved.
===============================================================================================================================
Package Architecture Version Repository Size
===============================================================================================================================
Installing:
mongodb-org x86_64 5.0.5-1.el8 mongodb-org-5.0 11 k
Installing dependencies:
cyrus-sasl x86_64 2.1.27-5.el8 baseos 95 k
cyrus-sasl-gssapi x86_64 2.1.27-5.el8 baseos 49 k
cyrus-sasl-plain x86_64 2.1.27-5.el8 baseos 46 k
mongodb-database-tools x86_64 100.5.1-1 mongodb-org-5.0 47 M
mongodb-mongosh x86_64 1.1.9-1.el7 mongodb-org-5.0 44 M
mongodb-org-database x86_64 5.0.5-1.el8 mongodb-org-5.0 11 k
mongodb-org-database-tools-extra x86_64 5.0.5-1.el8 mongodb-org-5.0 16 k
mongodb-org-mongos x86_64 5.0.5-1.el8 mongodb-org-5.0 19 M
mongodb-org-server x86_64 5.0.5-1.el8 mongodb-org-5.0 28 M
mongodb-org-shell x86_64 5.0.5-1.el8 mongodb-org-5.0 15 M
mongodb-org-tools x86_64 5.0.5-1.el8 mongodb-org-5.0 11 k
python3-pip noarch 9.0.3-20.el8.rocky.0 appstream 19 k
python3-setuptools noarch 39.2.0-6.el8 baseos 162 k
python36 x86_64 3.6.8-38.module+el8.5.0+671+195e4563 appstream 18 k
Enabling module streams:
python36 3.6
Transaction Summary
===============================================================================================================================
Install 15 Packages
Total download size: 153 M
Installed size: 565 M
Is this ok [y/N]:
.....
Installed:
cyrus-sasl-2.1.27-5.el8.x86_64
cyrus-sasl-gssapi-2.1.27-5.el8.x86_64
cyrus-sasl-plain-2.1.27-5.el8.x86_64
mongodb-database-tools-100.5.1-1.x86_64
mongodb-mongosh-1.1.9-1.el7.x86_64
mongodb-org-5.0.5-1.el8.x86_64
mongodb-org-database-5.0.5-1.el8.x86_64
mongodb-org-database-tools-extra-5.0.5-1.el8.x86_64
mongodb-org-mongos-5.0.5-1.el8.x86_64
mongodb-org-server-5.0.5-1.el8.x86_64
mongodb-org-shell-5.0.5-1.el8.x86_64
mongodb-org-tools-5.0.5-1.el8.x86_64
python3-pip-9.0.3-20.el8.rocky.0.noarch
python3-setuptools-39.2.0-6.el8.noarch
python36-3.6.8-38.module+el8.5.0+671+195e4563.x86_64
Lets check the version of MongoDB we have just installed.
$ mongod --version
db version v5.0.5
Build Info: {
"version": "5.0.5",
"gitVersion": "d65fd89df3fc039b5c55933c0f71d647a54510ae",
"openSSLVersion": "OpenSSL 1.1.1k FIPS 25 Mar 2021",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "rhel80",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
5. Configure MongoDB 5
To start using MongoDB we need to start the MongoDB.service, to do that run the following command;
$ sudo systemctl start mongod
Then after starting you need to enable it to start every time you boot up your device.
$ sudo systemctl enable mongod
Lastly, you can check the status of our MongoDB service if it is running as expected.
$ sudo systemctl status mongod
Output
● mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2022-01-30 18:15:31 UTC; 38s ago
Docs: https://docs.mongodb.org/manual
Main PID: 38404 (mongod)
Memory: 66.2M
CGroup: /system.slice/mongod.service
└─38404 /usr/bin/mongod -f /etc/mongod.conf
Jan 30 18:15:29 rockylinux systemd[1]: Starting MongoDB Database Server...
Jan 30 18:15:29 rockylinux mongod[38401]: about to fork child process, waiting until server is ready for connections.
Jan 30 18:15:29 rockylinux mongod[38401]: forked process: 38404
Jan 30 18:15:31 rockylinux mongod[38401]: child process started successfully, parent exiting
Jan 30 18:15:31 rockylinux systemd[1]: Started MongoDB Database Server.
Our MongoDB service is now running as expected.
To start using MongoDB type on your terminal mongosh, it will show something like this output;
$ mongosh
Current Mongosh Log ID: 61f6d61a8cda0cc1b432fec6
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.1.9
Using MongoDB: 5.0.5
Using Mongosh: 1.1.9
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).
You can opt-out by running the disableTelemetry() command.
------
The server generated these startup warnings when booting:
2022-01-30T18:15:30.984+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
2022-01-30T18:15:30.984+00:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
------
test>
6. MongoDB crud operations
Crud operations include creating, reading, updating, and deleting.
To check the current database you are operating on type db
$ db
test
Here am working on the test database.
To switch database you just say use db_name and it will create and switch to the database automatically.
$ use nextgentips
Insert into MongoDB database
MongoDB provides the following methods to insert documents into a collection.
# insert one
$ db.collection.insertOne()
# insert many
$ db.collection.insertMany()
Example
nextgen> db.nextgen.insertOne([ { Name: 'Nextgentips', Niche: 'Linux Tech Blog' }])
{
acknowledged: true,
insertedId: ObjectId("61f6d75e80b3d76dd79c1018")
}
In order to select documents you can use the find statement like this
db.collection.find()
Example
db.nexgen.find()
7. Uninstall MongoDB 5
If you want to uninstall MongoDB, first you will have to stop the MongoDB running instance and then remove the packages
Stop MongoDB instance
$ sudo systemctl stop mongod
Remove MongoDB packages
To completely remove the packages run the following command;
$ sudo dnf erase $(rpm -qa | grep mongodb-org)
Lastly, remove data directories
# log
$ sudo rm -r /var/log/mongodb
# lib
$ sudo rm -r /var/lib/mongodb
Conclusion.
We have learned how to install MongoDB on Rocky Linux. I am glad you have enjoyed the tutorial. Feel free to comment in case you are faced with a challenge.