How To Install MongoDB 3.4 on Ubuntu 16.04
Posted on January 8, 2020 (Last modified on July 14, 2022) • 5 min read • 961 wordsIn this tutorial we'll learn how to install MongoDB 3.4 on Ubuntu 16.04. Managing MongoDB service, creating root user and uninstall MongoDB also explained.
In this guide, we will learn how to install MongoDB 3.4 on Ubuntu 16.04 LTS (Xenial Xerus). We Will also learn how to configure and secure our MongoDB installation,
What is mongoDB? from MongoDB website:
MongoDB is a document database with scalability and flexibility that you want with query and indexing that you need.
By following this tutorial you should be able to install MongoDB 3.4, configure and secure MongoDB installation on Ubuntu 16.04
First of all, let’s add the MongoDB public key. This key is used by package management tool like apt
to ensure the consistency and authenticity of the package.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
The output should be similar to the text below
Executing: /tmp/tmp.XZgiMpeM0c/gpg.1.sh --keyserver
hkp://keyserver.ubuntu.com:80
--recv
0C49F3730359A14518585931BC711F9BA15703C6
gpg: requesting key A15703C6 from hkp server keyserver.ubuntu.com
gpg: key A15703C6: public key <span class="token string">"MongoDB 3.4 Release Signing Key <[email protected]>"</span> imported
gpg: Total number processed: 1
gpg: imported: 1 <span class="token punctuation">(</span>RSA: 1<span class="token punctuation">)</span>
<span class="token operator"><</span>/[email protected]<span class="token operator">></span>
Create new file /etc/apt/sources.list.d/mongodb-org-3.4.list
that contain mongodb 3.4 repository info using command below
echo "deb \[arch=amd64\] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Reload package database using the command below
sudo apt-get update
To install the latest stable version of MongoDB 3.4 you can use the command below. At the time of this writing, the latest stable version of MongoDB 3.4 is 3.4.18.
sudo apt-get install mongodb-org
To install a previous stable version of MongoDB 3.4 you need to specify a version for each package. For example, if you need to install MongoDB 3.4.15 you can use the command below.
sudo apt-get install -y \
mongodb-org=3.4.15 \
mongodb-org-server=3.4.15 \
mongodb-org-shell=3.4.15 \
mongodb-org-mongos=3.4.15 \
mongodb-org-tools=3.4.15
Now MongoDB installed let’s check MongoDB service using command below
sudo service mongod status
or we can use command below
sudo systemctl status mongod
We will get output similar to below which inform that mongod is not running.
To start MongoDB service we can use command below:
sudo service mongod start
or we can also use systemctl to start MongoDB service
sudo systemctl start mongod
We will see output similar to output below
MongoDB service already started but it’s not enabled by default by seeing this line
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
Let’s enable MongoDB service on boot by running
sudo systemctl enable mongodb
```bash
Now if we check MongoDB service status we will see that the service is enabled.
[<img loading="lazy" class="aligncenter size-medium wp-image-1092" src="https://howtodojo.com/wp-content/uploads/2020/01/install-mongodb-3.4-ubuntu-16.04-4.png" alt="" width="618" height="165" srcset="https://howtodojo.com/wp-content/uploads/2020/01/install-mongodb-3.4-ubuntu-16.04-4.png 618w, https://howtodojo.com/wp-content/uploads/2020/01/install-mongodb-3.4-ubuntu-16.04-4-604x161.png 604w" sizes="(max-width: 618px) 100vw, 618px" />][5]
## Checking MongoDB Service
Beside using `service` or `systemctl` command, we can check MongoDB service status using several tools.
To check where MongoDB service listening to we can use `netstat`
```bash
sudo netstat -naptu | grep 27017
We grep MongoDB default port 27017
.
As alternative we can also grep mongod
application name
sudo netstat -naptu | grep mongod
We can also use ss
to do similar check like netstat
ss -at | grep 27017
We can check MongoDB service process using command below:
ps aux | grep -m1 mongod
For more detail resource usage of our MongoDB process we can use top and only show process run by MongoDB user.
top -u mongodb
MongoDB user management is different compared to RDBMS user management like MySQL or PostgreSQL.
In MongoDB, the user is managed per database. If you want to create an administrative user you need to create a user in admin
database.
Connect to MongoDB using mongo client
mongo
Use command below to create user root with root role. Don’t forget to change the password.
db.createUser({user:"root", pwd:"changemeplease123123123", roles:\[{role:"root", db:"admin"}\]})
To generate random string for password on command line you can use comand below
uuidgen | sha256sum | awk {'print $1'}
or
uuidgen | sha256sum | cut -d ' ' -f 1
There are two ways to enable MongoDB authentication, by updating systemd service file or updating mongodb.conf file.
I recommend using the second method since mongodb service file might be overwrite by apt when we upgrade mongodb package.
Open /lib/systemd/system/mongod.service
file.
Find line
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
Replace the line with
ExecStart=/usr/bin/mongod --config /etc/mongod.conf --auth --config /etc/mongod.conf
Reload systemd daemons
sudo systemctl daemon-reload
Restart MongoDB service.
sudo systemctl restart mongod
Open /etc/mongodb.conf
file
Find line
#security:
Replace it with
security:
authorization: enabled
Restart MongoDB service to enable authentication
sudo service mongod restart
After enabling authentication we can connect using root user that we just created on previous step.
mongo -uadmin admin -p
In this section we’ll learn how to uninstall MongoDB 3.4 from Ubuntu 16.04. Please be really careful when running command on this section.
Before we uninstall MongoDB 3.4 we need to stop MongoDB service first.
sudo service mongod stop
To uninstall MongoDB 3.4 we can use command below
sudo apt-get purge mongodb-org*
Command above only remove MongoDB packages.
To remove MongoDB log directory use command below
sudo rm -r /var/log/mongodb
To remove MongoDB data directory use command below
WARNING : command below will remove your data and cannot be restored. be very very very careful when you’re running command below.
sudo rm -r /var/lib/mongodb
You can find references related to MongoDB 3.4 below
In this article, We learned to install MongoDB 3.4 on Ubuntu 16.04 LTS (Xenial Xerus). We also learned how to manage MongoDB service, check MongoDB service status using multiple tools, create root user and also enable authentication.
We also learned how to uninstall MongoDB 3.4 from Ubuntu 16.04.
Now you can start building your application using MongoDB as a database.