MongoDB is a popular database engine used in conjunction with various scripting languages, particularly Python and Rails. Its strongest point is JSON-like data storage, which allows for the natural processing of data stored in the database.
The query used by MongoDB is also in the form of JSON, which allows users to construct complex queries easily. Although MongoDB is available for Windows, Linux, and Mac OS X, it is most commonly used with Debian or Ubuntu Linux.
However, in Ubuntu 15.10 and 16.04, MongoDB sometimes fails to start with the following error:
system> sudo systemctl start mongodb
Failed to start mongod.service: Unit mongod.service not found
What Caused It the Error?
This error stems from the fact that Ubuntu switched from upstart
to systemd
, a new and improved system init daemon, from version 15.04 onwards.
The first Ubuntu LTS (Long-Term Support) version that uses systemd
is 16.04, causing some compatibility problems with systems upgraded from the previous 14.04 LTS version. Subsequent versions of Ubuntu will not have this compatibility problem as the systemd
quirks are already fixed.
How to Fix
Fortunately, you can get MongoDB up and running in your Ubuntu 16.04 system easily by following the following instructions.
The first step you need to do is to back up the MongoDB data as you will need to remove MongoDB Community completely. As MongoDB is not running, you cannot use mongodump
to back up the data, and you will need to use cp
command. Issue this following command:
cp -aRp /var/lib/mongo/ /home/<username>/mongodb_backup
And wait for it to complete. Afterwards, proceed to uninstall MongoDB completely by issuing these commands:
sudo service mongod stop
sudo apt-get purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
After uninstalling MongoDB, you can install it back again with these following commands:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
sudo apt-get update
sudo apt-get install -y mongodb-org
The next step is to fix and restore MongoDB service to systemd
service list. Issue this following command:
sudo systemctl enable mongod
Afterwards, restore the MongoDB database backup you created by issuing this command:
cp -aRp /home/<username>/mongodb_backup /var/lib/mongo/
And voila! You can start MongoDB again easily with the following command:
sudo service mongod restart
In some systems, the daemon mongod
is named mongodb
, so if the command fails to locate mongod
service, try using mongodb
instead of mongod
.
We are a bunch of people who are still continue to learn Linux servers. Only high passion keeps pushing us to learn everything.