MongoDB无法正常工作。 "错误:dbpath(/ data / db)不存在。"

时间:2014-07-06 18:44:39

标签: node.js angularjs mongodb express

当我尝试在终端中运行“mongod”时,我收到以下错误。我尝试卸载,重新安装和重新启动计算机。关于如何让它工作的任何建议都会很棒。

错误:

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

旁注: 节点也在我收到此错误的同时停止在我的机器上工作。

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

非常感谢任何帮助!

5 个答案:

答案 0 :(得分:179)

这应该可以确保在正确的位置设置目录,以便Mongo可以找到它:

sudo mkdir -p /data/db/

sudo chown `id -u` /data/db

答案 1 :(得分:14)

您需要在root / data / db上创建目录,或使用以下命令设置任何其他路径:

mongod --dbpath /srv/mongodb/

See the example link

答案 2 :(得分:6)

我用以下方法解决了问题:

sudo mongod --dbpath=/var/lib/mongodb然后mongo访问mongodb Shell。

答案 3 :(得分:2)

更改新数据目录的用户:

  

chown mongodb [rute_directory] ​​

并尝试另一次启动mongo服务

  

service mongod start

我用这个解决了同样的问题。

答案 4 :(得分:1)

守护进程(通常以d结尾)通常作为服务启动。启动服务(守护进程)将允许mongodb按设计工作(如果与发行版集成良好,则无权限更改)。我使用名为mongodb的服务启动它,而不是直接启动mongod - 在启动时使用systemd enable启动发行版然后运行如下:

sudo systemctl enable mongodb    
sudo systemctl start mongodb

或者,在带有upstart的发行版(如果你有/ etc / init)或init(如果你有/etc/init.d)(https://www.tecmint.com/systemd-replaces-init-in-linux/)上运行:

sudo service mongodb enable
sudo service mongodb start

如果您有一个带有rc(“运行命令”)的发行版,例如Gentoo(/etc/init.d中的设置)(https://forums.gentoo.org/viewtopic-t-854138-start-0.html),请运行:

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

在仍然有rc的FreeBSD的发行版/版本中(检查你的版本是否切换到systemd,否则见下文):

  • 将以下行添加到/etc/rc.conf:

    mongod_enable = “YES”

  • 然后:

    sudo service mongod start

启动服务后,未成熟的用户可以使用mongo,每个用户都有单独的数据。