Mongo DB as service on Ubuntu - mongodb

I installed MongoDB on Ubuntu 14.04 using this tutorial. Everything works fine, but how can I run it as service not only manualy?
To make it more clear: I want that MongoDB keeps running after I close "ssh shell".

The easiest way is to install it via APT
Step 1: Import public key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
Step 2: Add the MongoDB repository details so APT
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
Then update APT packages:
sudo apt-get update
Step 3: Installing and Verifying MongoDB
sudo apt-get install -y mongodb-org
Verify it status
service mongod status
It should show: mongod start/running, process 1611
You can also stop, start, and restart MongoDB using the service command (e.g. service mongod stop, server mongod start).
References: https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-14-04

Related

MongoDB failed (result: core-dump)?

I'm attempting to setup MongoDB on Ubuntu 20.04.02 LTS by following the documentation. I have ensured this is a fresh install. However an error persists when I verify if the MongoDB install started succesfully by typing in:
sudo systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor prese>
Active: failed (Result: core-dump) since Wed 2021-08-11 12:59:20 UTC; 49s >
Docs: https://docs.mongodb.org/manual
Process: 3190 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=dum> Main PID: 3190 (code=dumped, signal=ILL)
Aug 11 12:59:19 discorddomagoj systemd1: Started MongoDB Database
Server. Aug 11 12:59:20 discorddomagoj systemd1: mongod.service:
Main process exited,> Aug 11 12:59:20 discorddomagoj systemd1:
mongod.service: Failed with result '>
Picture of problem for clarity:
1.Stop the mongod process by issuing the following command:-
sudo service mongod stop
2.Remove any MongoDB packages that you had previously installed:-
sudo apt-get purge mongodb-org*
3.Remove MongoDB databases and log files:-
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
4.Then reinstall mangodb 4.4.8
5.Import the public key used by the package management system:-
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
6.The following instruction is for Ubuntu 20.04 (Focal):-
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
7.Update Apt
sudo apt-get update
8.Install mongodb
sudo apt-get install mongodb-org=4.4.8 mongodb-org-server=4.4.8 mongodb-org-shell=4.4.8 mongodb-org-mongos=4.4.8 mongodb-org-tools=4.4.8
9.Use mongod --version to check its succesfully installed
10.If u encounter any error while using mongod
sudo mkdir /data
cd /data
sudo mkdir db
sudo pkill -f mongod
11.Then use sudo mongod command.
This error show CPU incompatibly with mongodb. if use proxmox set cpu mode to "HOST".
stop the db
sudo service mongod stop
uninstall it:
sudo apt-get purge mongodb-org*
Import the public key used by the package management system
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
Create a list file for MongoDB.
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
Reload local package database
sudo apt-get update
Install a specific release of the MongoDB packages(this was the reason I had that similar error for not specifying the package)
sudo apt-get install -y mongodb-org=5.0.7 mongodb-org-database=5.0.7 mongodb-org-server=5.0.7 mongodb-org-shell=5.0.7 mongodb-org-mongos=5.0.7 mongodb-org-tools=5.0.7
lastly, on one tab of the terminal run:
sudo mongod
on another open the db:
mongo
I have same issue when installing mongodb on virtual machine with proxmox.
Changing processor from kvm to host or sandybridge(my actual pc) solved this problem. Reference link
This is an addition to #AbdulWahhab 's answer. I have recently seen many questions of same type: 'can't start mongodb#5.0.x server on ubuntu#20.0.4'. Having faced this issue myself, I found installing mongodb#4.4.8 version only way out. In addition consider that sudo apt-get update updates all packages including mongodb. Newer version of mongodb gets installed and server does not work anymore(as of 10th december 2021). To prevent unintended upgrades, you can pin the package at the currently installed version:
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-database hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
A possible reason for the dump is a change in the microarchitecture requirements of MongoDB introduced with version 5.0. This causes this exact issue on a Raspberry Pi for instance (see: MongoDB Forum).
This issue might be mitigated by building from source as described in the forum post. I haven't tried this though personally. Installing versions prior to 5.0 (as described by Abdul Wahhab) will solve the problem as well.
If you have tried all of the above solutions, and still can't help, please try to reboot the VM.
I am using 18.04 and initially installed 6.0 mongoDB and it just showed the core-dump error after issuing "sudo systemctl status mongod".
After doing some research, I tried to uninstall the 6.0 and then re-install 4.4, it still couldn't help.
Then I tried to re-install 4.2, it still couldn't help.
Finally, I tried to reboot the VM, then it works..
For MongoDB 5.0+
If you are running on VirtualBox with a Windows host, disable Hyper-V. The issue is a lack of AVX support and to get it you need to disable Hyper-V and be using VirtualBox 5.03 or later.
Using CMD as Administrator
bcdedit /set hypervisorlaunchtype off
DISM /Online /Disable-Feature:Microsoft-Hyper-V
Then hard shutdown and restart the host. After that, starting the guest from cold boot should work.
sudo systemctl start mongodb
sudo systemctl status mongodb
Source: https://forums.virtualbox.org/viewtopic.php?f=25&t=99390
I had the same problem on Ubuntu 22.10 and MongoDB 6.0.
I solved it by put it AVX to AUTO in BIOS.
Just for future help in case of someone else need help.
check if you have the java runtime environment (JRE), if not then install it:
sudo apt install default-jre
That' s all =)

Installing MongoDB in WSL

I was trying to install MongoDB in WSL running Ubuntu 18.04 after seeing this documentation. But MongoDB says that:
IMPORTANTThe mongodb package provided by Ubuntu is not maintained by MongoDB Inc. and conflicts with the official mongodb-org package. If you have already installed the mongodb package on your Ubuntu system, you must first uninstall the mongodb package before proceeding with these instructions.
MongoDB also says that WSL doesn't support mongodb-org
WINDOWS SUBSYSTEM FOR LINUX (WSL) - UNSUPPORTEDMongoDB does not support the Windows Subsystem for Linux (WSL).
So, I installed mongod using sudo apt install mongodb and when I ran mongo it shows the error:
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
2020-06-21T13:33:40.606+0530 E QUERY [js] Error: couldn't connect to server 127.0.0.1:27017
Is there is a way to install the appropriate package and make it running?
I have come across this situation recently.
Even though MongoDB says that it is not supported in WSL, you can actually install it. So, I suggest you follow that steps given in MongoDB docs.
Note : If you have already installed mongodb please remove all those before you install mongodb-org since it may cause some issues during installation :
sudo dpkg --remove --force-remove-reinstreq mongo-tools
sudo dpkg --remove --force-remove-reinstreq mongodb-server-core
sudo apt-get --fix-broken install
For installing mongodb community edition, I have added the commands below:
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
sudo apt-get install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org
Now, to get mongoDB running,
sudo nano /etc/init.d/mongod
and paste the contents in this link into the file and save it.
#give permissions
sudo chmod +x /etc/init.d/mongod
#start the service
sudo service mongod start
Now, you can run mongo to reach the database.
Hope it helps.
#bonyem's solution works if you try on Ubuntu 18.04 (and apparently in 19.10) but not in 20.04. WSL version should be 2 (please see this to update WSL).
You also need to "fake" the bash binary by following the steps mentioned in https://github.com/shayne/wsl2-hacks to make systemctl work.
I tried all the methods above but none of the methods worked. I came across Microsoft's official documentation and everything works like a charm.
https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-database#install-mongodb
This worked for me.
Run sudo apt install mongodb
Then after that installs run sudo service mongodb start
It will say * Starting database mongodb
And after that I can connect using mongo
Easiest way to bypass this issue is to run MongoDB on Windows. You'll still be able to connect from WSL2 over localhost.
For me, #bonyem's solution resulted in an error:
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
I'm going to install Mongo 4.4. Many instructions were taken from #Lyubosumaz's directions here.
Get rid of all your Mongo PPAs.
~ ❯ sudo ls /etc/apt/sources.list.d
mongodb-org-4.4.list yarn.list
~ ❯ sudo rm -i /etc/apt/sources.list.d/mongodb-org-4.4.list
Remove all Mongo packages and bits and pieces.
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
sudo dpkg --remove --force-remove-reinstreq mongo-tools
sudo dpkg --remove --force-remove-reinstreq mongodb-org
sudo dpkg --remove --force-remove-reinstreq mongodb-org-server
sudo dpkg --remove --force-remove-reinstreq mongodb-server-core
sudo dpkg --remove --force-remove-reinstreq mongodb-org-mongos
sudo dpkg --remove --force-remove-reinstreq mongodb-org-shell
sudo dpkg --remove --force-remove-reinstreq mongodb-org-tools
sudo apt-get --fix-broken install
yes | sudo apt autoremove
Add new PPA and install Mongo 4.4.
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y mongodb-org
You'll get the same error from before. This is caused by mongodb-org package trying to use systemctl to start the DB after install (source). Notice that the same error is thrown when running the command manually.
~ ❯ sudo systemctl start mongod
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
However, running mongod should still work!
If you run into errors when running mongod, you might need to modify some permissions and create a data directory. I found the answer to these issues here, here, and here.
sudo chown $USER /tmp/mongodb-27017.sock
sudo mkdir -p /data/db
sudo chown -R $USER /data/db
I have tried some of the answers above, it did not work for me.
Then I followed a guide 1:
Update ubuntu packages
Install MongoDB on the command line
Set up your local database
Creating the folders and permissions
It worked in my case!

Mongodb not create the process [Ubuntu machine]

I created a Ubuntu machine on a koding.com environment (like AWS EC2 Ubuntu).
That environment comes with a Mongodb 2.6 preinstalled but i need Mongo 3.0 at least, I uninstalled the 2.6 and installed the 3.2. This is What happens when i try to stop the service.
stop: Unknown instance:
myUser: ~/Web/project $
Before stop the service i started, this is what i found:
myUser: ~/Web/project $ sudo service mongod start
mongod start/running, process 5538
Also, i searched here Stop: Unknown instance mongodb (Ubuntu) without help.
Solved!
Remove files from:
/etc/apt/sources.list.d
Then:
sudo apt-get purge mongodb-org
sudo apt-get autoremove
sudo apt-get update
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org

Uninstall mongodb correctly and install mongodb again

Please teach me how to uninstall my mongodb in my virtualbox(ubuntu).
I tried these command and nothing was removed :
sudo apt-get purge mongodb mongodb-clients mongodb-server mongodb-dev
sudo apt-get purge mongodb-10gen
sudo apt-get autoremove
It still exists.
I type mongod --version it shows db version v2.6.1
Update:
I want to remove it and then install it again:
I tried the following 4 commands -
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install mongodb-org
then
sudo service mongod start
and type mongo there is error:
MongoDB shell version: 2.6.4
connecting to: test
2014-09-02T21:27:10.390+0800 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2014-09-02T21:27:10.392+0800 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
exception: connect failed
Did I miss something?
Please help me. Thank you!!
Normally, with apt command, you can launch autoremove with all mongoDB packages :
sudo apt-get autoremove mongodb-*
Ok on the mongodb documentation, the packages are changed. To have an up-to-date package follow instructions :
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
Create the /etc/apt/sources.list.d/mongodb.list list file using the following command:
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
Issue the following command to reload the local package database:
sudo apt-get update
And install desired packages :
sudo apt-get install mongodb-org
After that you have server, shell, mongos, ... To launch mongodb-server youcan launch the mongodb service like this :
sudo service mongod start
To connect on your local server just enter this command :
mongo
To remove Mongo run these commands below
sudo apt-get purge mongodb
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
If you have different versions of mongo already installed, Run the command below
sudo apt-get autoremove
To install mongo safely in Ubuntu 18.04 first update all packages by running this command
sudo apt update
Now install mongo
sudo apt install -y mongodb
Start mongo by running command below
sudo systemctl start mongodb
Now check mongodb status by running
sudo systemctl status mongodb
It should show a status Active
I hope this works for you thanks

Mongodb installation Ubuntu 12.04 LTS

My mongodb installation isn't working very well. I added a place in /etc/apt/sources.list, but I get an error message that there is a duplicate in an entry between the i386 packages and amd64 packages? I tried an update, but it doesn't work.
In this how-to-install-mongodb-on-ubuntu, each step was well explained. I tried and it went well as expected. Good luck! :)
Its easy to install mongodb in ubuntu.
Step 1: Search for the mongodb package avaliable but initially it may not be present
sudo apt-cache search mongodb
Step 2: Add the package to /etc/apt/sources.list.d because its the the latest stable MongoDB version
vim /etc/apt/sources.list.d/mongodb.list
Add the following link into the mongodb.list file
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
Step 3: Import the GPG key
apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Step 4 : Update the debian package using the command:
apt-get update
Step 5: Now perform search to view the package
apt-cache search mongodb
Step 6: Now the package will be present so install it using the below command:
apt-get install mongodb-10gen
Step 7: Check mongodb has started using
ps -ef | grep mongo
ls -ls /usr/bin | grep mongo
Step 8: The mongodb control script is generated at /etc/init.d/mongodb,the MongoDB config file is at /etc/mongodb.conf add the below details:
verbose = true
dbpath = /data/db
logpath = /var/log/mongodb.log
logappend = true
port = 27017
Step 9: Start the mongodb as a service
service mongodb start
Step 10 :Check mongodb service has started using
ps -ef | grep mongodb
Step 11 : To stop/restart perform the below commands:
service mongodb stop
service mongodb restart
This is taken from my blog post, which I have explained in further detail.
Download and Unzip the .tar .zip and invoke in terminal $.\mongod (after unzip, it runs server instance on default port), Use another terminal and try $.\mongo (show dbs, use dbname, show collections,...)
Depending on the 32bit/64bit version depending on your system capability use 32/64 bit.
first you have to configure Ubuntu Package Management System (APT)
to be able to get the public GPG key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
or type
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
another issue you may face it's when you want to connect
to the internet through proxy, export proxy settings to you bash configuration
- add this line with your proxy address (at the end of file /etc/bash.bashrc):
export http_proxy=http://username:password#proxyserver:port/
now Create a /etc/apt/sources.list.d/10gen.list file and include
the following line in the 10gen.list for the 10gen repository:
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
if you get that went right you have to update the packages
sudo apt-get update
now install mongodb package:
sudo apt-get install mongodb-10gen
and you good !!!