How to Install MongoDB 4 on AlmaLinux 8
MongoDB is a NoSQL database that stores data as JSON-like documents. Documents store related information together and use the MongoDB query language (MQL) for access and it is also called as GriddFS which performs load balancing and data replication features over multiple machines for storing files.
Installing MongoDB
Before installing MongoDB, we need to add a repository manually since it is not present in the default repository.
Create a repository file using the following command.
# vi /etc/yum.repos.d/mongodb.repo
And the following line and save the file.
[mongodb-org-4.4] name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
Enter the following command to install MongoDB.
dnf install -y mongodb-org
Next, Start and Enable the MongoDB.
systemctl start mongod
systemctl enable mongod
Command to Verify the MongoDB.
systemctl status mongod
Output:
[root@server ~]# systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2021-02-16 23:10:54 EST; 46s ago
Docs: https://docs.mongodb.org/manual
Main PID: 2236 (mongod)
Memory: 102.3M
CGroup: /system.slice/mongod.service
└─2236 /usr/bin/mongod -f /etc/mongod.conf
MongoDB Shell
Command to access MongoDB’s shell.
mongo
Note: You will receive the following output when you enter the MongoDB shell for the first time.
Output:
[root@server ~]# mongo
MongoDB shell version v4.4.4
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("9a6a4ff9-53ad-4e1e-b49b-ff089559b9e1") }
MongoDB server version: 4.4.4
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
https://community.mongodb.com
---
The server generated these startup warnings when booting:
2021-02-16T23:10:54.569-05:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
2021-02-16T23:10:54.569-05:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
---
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
Creating MongoDB Admin User
Enter into MongoDB shell.
mongo
Command to switch to the database admin by running.
> use admin
Create an Admin user by running the following code.
Note: Replace a
Enter-A-user-Here
with a username andEnter-A-Password-Here
with a strong and secure password.
> db.createUser(
{
user: "Enter-A-user-Here",
pwd: "Enter-A-Password-Here",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Output:
Successfully added user: {
"user" : "mongod_admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Run the following command to list MongoDB users.
> show users
Output:
> show users
{
"_id" : "admin.mongod_admin",
"userId" : UUID("5b78c7d3-b956-4330-8d77-7212a7cff7c1"),
"user" : "mongod_admin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
Authentication for MongoDB
Note: Since all users can access the shell and execute any commands this will cause security issues -- we can prevent this by creating authentication for the admin user.
To enable authentication open the /lib/systemd/system/mongod.service
file and find the following line.
Environment="OPTIONS=-f /etc/mongod.conf"
and change to,
Environment="OPTIONS= --auth -f /etc/mongod.conf"
Save and exit the configuration file.
And restart MongoDB to reflect the changes.
systemctl restart mongod
Now you can try to list the user without authentication, you will receive an error
output:
> show users
uncaught exception: Error: command usersInfo requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1659:15
shellHelper.show@src/mongo/shell/utils.js:914:9
shellHelper@src/mongo/shell/utils.js:819:15
@(shellhelp2):1:1
To authenticate, run the following code.
Note: Replace a
Enter-A-user-Here
andEnter-A-Password-Here
with your credentials.
> db.auth('Enter-A-user-Here', 'Enter-A-Password-Here')
Now you can run any command with no issues.
To exit MongoDB.
> exit
This Concludes how you install MongoDB on AlmaLinux 8.
If you can not configure and face any technical difficulties, kindly reach out to us via Support Ticket.
CrownCloud - Get a SSD powered KVM VPS at $4.5/month!
Use the code WELCOME
for 10% off!
1 GB RAM / 25 GB SSD / 1 CPU Core / 1 TB Bandwidth per month
Available Locations: LAX | MIA | ATL | FRA | AMS