I'm getting the following error when I try to run "mongod" in the terminal. I've tried uninstalling, reinstalling, and restarting the machine. Any suggestions on how to get it working would be amazing.


dbpath (/data/db) does not exist.
 Create this directory or give existing directory in --dbpath.
 See http://dochub.mongodb.org/core/startingandstoppingmongo

Side note: Node also stopped working on my machine around the same time that I got this error.

        throw er; // Unhandled 'error' event
Error: failed to connect to [localhost:27017]

Any help would be much appreciated!

Solution 1

This should work to ensure that the directory is set up in the right place so that Mongo can find it:

sudo mkdir -p /data/db/

sudo chown `id -u` /data/db

Solution 2

You need to create the directory on root /data/db or set any other path with the following command :

mongod --dbpath /srv/mongodb/

See the example link

Solution 3

I solved the problem with :

sudo mongod --dbpath=/var/lib/mongodb and then mongo to access the mongodb Shell.

Solution 4

Change the user of the new data directory:

chown mongodb [rute_directory]

And try another time to start the mongo service

service mongod start

I solve the same problem with this.

Solution 5

Daemons (usually ending with d) are normally started as services. Starting the service (daemon) will allow mongodb to work as designed (without permission changes if integrates well with your distro). I start it using the service named mongodb instead of starting mongod directly--on distro with systemd enable on startup then run like:

sudo systemctl enable mongodb    
sudo systemctl start mongodb

or, on distro with upstart (if you have /etc/init) or init (if you have /etc/init.d) ( https://www.tecmint.com/systemd-replaces-init-in-linux/ ) instead run:

sudo service mongodb enable
sudo service mongodb start

If you have a distro with rc ("run commands") such as Gentoo (settings in /etc/init.d) (https://forums.gentoo.org/viewtopic-t-854138-start-0.html) run:

rc-update add mongodb default 
/etc/init.d/mongodb start 

In a distro/version of FreeBSD which still has rc (check whether your version switched to systemd, otherwise see below):

  • add the following line to /etc/rc.conf:


  • then:

    sudo service mongod start

After starting the service, an unpriveleged user can use mongo, and each user will have separate data.

Solution 6

I also got the error that "The file /data/db doesn't exist" when I tried to save my file using the "mkdir -p /data/db" command(using both with and without sudo command). But later on one site, a person named Emil answered that the path "/data/db" no longer works on Mac, so use "~/data/db" instead i.e., use the command mkdir -p ~/data/db instead of previous command. Moreover, use mongod --dbpath ~/data/db to run mongod It worked for me, hope it work for others too facing the same problem