MongoDB not working. “ERROR: dbpath (/data/db) doe

2019-01-13 01:08发布

问题:

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.

ERROR:

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.

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: failed to connect to [localhost:27017]

Any help would be much appreciated!

回答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



回答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



回答3:

I solved the problem with :

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



回答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.



回答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:

    mongod_enable="YES"

  • then:

    sudo service mongod start

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