Introduction
Before we begin talking about how to install MongoDB on Ubuntu 20.04, let's briefly understand – What is MongoDB?
MongoDB is an open-source document database that is free to use. It is a part of the NoSQL database family, which differs from standard table-based SQL databases such as MySQL and PostgreSQL.
Data in MongoDB is saved in flexible, JSON-like documents, with fields that might differ from document to document. The data structure can evolve over time, and there is no requirement for a predefined format.
In this tutorial, you will learn to install and configure MongoDB Community Edition on Ubuntu 20.04.
The default Ubuntu repositories contain an outdated version of MongoDB. It is simple to install the most recent version of MongoDB on Ubuntu. We will activate the MongoDB repository, import the repository GPG key, and install the MongoDB server.
Installing MongoDB on Ubuntu 20.04
To install MongoDB on Ubuntu, carry out the subsequent actions as root or as a user with sudo privileges:
1) Installing the prerequisites for adding a new repository through HTTPS is as follows:
sudo apt update
sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common
2) Add the MongoDB repository and import the repository's GPG key with the below command:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse'
The most recent MongoDB version is 4.4 as of the time this tutorial was written. Replace 4.4 with your preferred version to install that version.
3) After the repository has been enabled, type the following to install the mongodb-org
meta-package:
sudo apt install mongodb-org
Your system will install the following applications:
mongodb-org-server
- Themongod
daemon, as well as the associatedinit
scripts and configurations.mongodb-org-mongos
- Themongos
daemon.mongodb-org-shell
- MongoDB's interactive JavaScript user interface is called themongo shell
. It is used to carry out administrative activities via the command line.mongodb-org-tools
- Stores many MongoDB tools for importing and exporting data, statistics, and other utilities.
4) Type the following commands to launch the MongoDB daemon and have it start on boot:
sudo systemctl enable --now mongod
5) Connect to the MongoDB database server with the mongo
tool, and print the connection status to see if the installation was successful:
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
You will get an output like below:
Output
MongoDB shell version v4.4.0
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("2af3ab0e-2197-4152-8bd0-e33efffe1464") }
MongoDB server version: 4.4.0
{
"authInfo" : {
"authenticatedUsers" : [ ],
"authenticatedUserRoles" : [ ]
},
"ok" : 1
}
A value of 1
in the ok
field signifies success.
Configuring MongoDB
mongod.conf
, MongoDB's configuration file, is located in the /etc
directory. The document is in YAML format.
In most circumstances, the default configuration settings are adequate. However, we advise uncommenting the security section and turning on authorization for production environments, as illustrated below:
sudo nano /etc/mongod.conf
security:
authorization: enabled
Role-Based Access Control (RBAC), which limits users' access to database resources and operations, is enabled via the authorization
option. Each user will have access to all databases and be able to execute any action if this option is disabled.
For changes to take effect after modifying the MongoDB configuration file, restart the mongod service:
sudo systemctl restart mongod
Visit the Configuration File Options documentation page to learn more about the configuration options included in MongoDB 4.4.
Creating Administrative MongoDB User
If you activated MongoDB authentication, you will need to establish an administrative user who can access and administer the MongoDB instance.
1) To access the mongo shell:
mongo
2) To connect to the admin
database, enter the following command from inside the MongoDB shell:
use admin
Output
switched to db admin
3) To create a new user named mongoAdmin
with the password changeMe
and userAdminAnyDatabase
role, use the following command:
db.createUser(
{
user: "mongoAdmin",
pwd: "changeMe",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Output
Successfully added user: {
"user" : "mongoAdmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
After that, exit the mongo shell with:
quit()
Access the mongo shell using the administrative user you previously created to test the modifications:
mongo -u mongoAdmin -p --authenticationDatabase admin
use admin
Output
switched to db admin
Run show users
and you should see details about the recently created user:
show users
{
"_id" : "admin.mongoAdmin",
"userId" : UUID("49617e41-ea3b-4fea-96d4-bea10bf87f61"),
"user" : "mongoAdmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
You can also try accessing the mongo shell without any arguments (just enter mongo
) and see if you can list the users using the same commands used above.
Conclusion
In this tutorial, you have learned how to install and configure MongoDB on Ubuntu 20.04. Check out the MongoDB Manual, for more information on this subject.
Please leave a comment below if you have any queries, and we'll be happy to respond to them.