I follow all the steps mention in MongoDB installation documents for Ubuntu 16.04
.
Steps 1:
sudo apt-key adv --keyserv
It worked for me on ubuntu 20.04: In my case, mongod.service file was locked so it was giving me the same error. To resolve the issue:- Step 1: Use following command to check if the mongod.service is present there
cd /usr/bin/systemd/system
ls
Step 2: If the file is present there then Run the following command to unlock the file mongod.service
sudo chmod 777 /usr/bin/systemd/system/mongod.service -R
Step 3: Now run the following commands:
sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl enable mongod
Well.... My answer may be considered naive but in fact it has been the only way MongoDB has work in my case, Ubuntu 19.10. I tried to run the commands from the most voted comments and none worked, when running:
mongod --repair
I got this alert:
With some research I found out that running the DB in another port could be a solution, then:
mongod --port 27018
And it works great for me every time. Long answer but wanted to give context before giving such a simple solution.
(If I'm doing it wrong or doesn't seem logical, plz tell me! Relevant for me)
Please follow the below steps, it should work.
1 - Uninstall current installation completely
Source - official instructions
sudo service mongod stop
Remove Packages
sudo apt-get purge mongodb-org*
Remove the folders
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
2 - Reinstall as described on official site, I will just write down the all steps. enter link description here
Import the public key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
Create a list file for Ubuntu 16.04
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
update the list
sudo apt-get update
Install the latest package
sudo apt-get install -y mongodb-org
3 - Now it should work, please try below command
sudo service mongod start
and check the status
mongo
it should appear the mongo shell
To solve the problem of not being able to start mongodb on ubuntu 16.04 1) look at mongodb log file
2) we find that the error is due to "Failed to unlink socket file /tmp/mongodb-27017"
3) Look at the permission of file /tmp/mongdb-27017.lock and find that the owner is root instead of mongodb
4) Delete the /tmp/mongodb-27017.sock file manually and use the command "sudo chown mongodb:mongodb /tmp/mongodb*"
5) Start the service with systemcl and use netstat to check whther mongdob has been started on port 27017
Credit: https://www.mkyong.com/mongodb/mongodb-failed-to-unlink-socket-file-tmpmongodb-27017/ https://hevodata.com/blog/install-mongodb-on-ubuntu/
For Ubuntu 16.04.5, it is noticed that MongoDB installations does not auto enable the mongod.service file after installation in my case after I have installed on several servers, so we need to enable it like below:
Issue below to check whether mongod is enabled
systemctl list-unit-files --type=service
If it shows as "disabled", then you need to enable it.
sudo systemctl enable mongod.service
If we want to see whether mongod.service file exists in case this file is missing, check in
ls /lib/systemd/system
You will see a file
/lib/systemd/system/mongod.service
Most probably unit mongodb.service is masked. Use following command to unmask it.
sudo systemctl unmask mongod
and re-run
sudo service mongod start