Running mongodb on ubuntu 16.04 LTS Running mongodb on ubuntu 16.04 LTS mongodb mongodb

Running mongodb on ubuntu 16.04 LTS


Anyone who upgrade or installed Ubuntu 16.04 ( also known as Ubuntu Xenial xerus ) noticed that some of the old services stopped running. This issue is known from version 15.04 but I will focus on the above version.

Such was my case with MongoDB. To make a long story, short, Ubuntu shifted from upstart to systemd. One common solution, to these problems, is to switch back to upstart. I do not consider that option as a real solution, certainly not for the long run.

A real solution ( IMHO ) to the problem is to write systemd script that will start MongodDB. Unfortunately MongoDB guys had yet to supply one.

So I had to write one from scratch. To create one of your own follow these steps:

  1. switch to root using
    sudo su

or use sudo for all the following steps.

  1. create a service script (in this example the name of the service is Mongodb)

    nano /lib/systemd/system/mongodb.service
  2. File content should be

    [Unit]Description=MongoDB Database ServiceWants=network.targetAfter=network.target[Service]ExecStart=/usr/bin/mongod --config /etc/mongod.confExecReload=/bin/kill -HUP $MAINPIDRestart=alwaysUser=mongodbGroup=mongodbStandardOutput=syslogStandardError=syslog[Install]WantedBy=multi-user.target

You can also download the file from here:mongodb.service
Here is a quick description of the important fields:
ExecStart - Is the command to run. Mongo installs itself under /usr/bin and the configuration file is written at /etc
User - The uid of the mongod process.
Group - The gid of the mongod process. Note that the user and group are created by the installation.

Now to start mongodb:

sudo systemctl start mongodb

To stop mongodb service use:

sudo systemctl stop mongodb

To enable mongodb on startup

sudo systemctl enable mongodb.service

If you need to refresh the services use:

 sudo systemctl daemon-reload


The latest version of MongoDB does most of things except one thing for now.After installing the MongoDB on Ubuntu 16.04.x , run the commands as follows:

$ sudo systemctl enable mongod.service$ sudo systemctl daemon-reload

Now most likely mongod starts on every boot automatically.


This solution also works in case of getting this error:

Failed to start mongod.service: Unit mongod.service not found.

After run the commands above, the commands below start to work:

$ sudo service mongod start$ mongo

Similarly, the all services installed must be enabled to run.For instance, after installation of Ops Manager (a.k.a MMS) the documentation says to run the commend below.

$ sudo systemctl start mongodb-mms.service

Most likely Ubuntu does not start the service. Because it is not enabled yet. To enable it just run the command below:

$ sudo systemctl enable mongodb-mms.service$ sudo systemctl daemon-reload

Then try to start the service:

$ sudo systemctl enable mongodb-mms.service

That's all...


For People That Want A Fresh Install

I have been struggling with this for 1 hour. Then I found this pageInstalling is as easy as doing:

sudo apt-get updatesudo apt-get install mongodb

Then to check if everything works:

sudo service mongodb status

Let me know if this works for you!