如果没有我指定我自己的confpath,mongod将不会运行

我最近升级了我的apt-get,现在mongod的行为是不正确的。

我目前必须通过运行: mongod --dbpath /var/lib/mongodb

并将terminal打开以使其工作。

如果我只是运行mongod

 root@ip-XXX-XX-XX-XX:/home/ubuntu# mongod mongod --help for help and startup options Sun Jun 22 21:48:19.403 [initandlisten] MongoDB starting : pid=2033 port=27017 dbpath=/data/db/ 64-bit host=ip-XXX-XX-XX-XX Sun Jun 22 21:48:19.403 [initandlisten] db version v2.4.10 Sun Jun 22 21:48:19.403 [initandlisten] git version: e3d78955d181e475345ebd60053a4738a4c5268a Sun Jun 22 21:48:19.403 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49 Sun Jun 22 21:48:19.403 [initandlisten] allocator: tcmalloc Sun Jun 22 21:48:19.403 [initandlisten] options: {} Sun Jun 22 21:48:19.404 [initandlisten] exception in initAndListen: 10296 ********************************************************************* ERROR: dbpath (/data/db/) does not exist. Create this directory or give existing directory in --dbpath. See http://dochub.mongodb.org/core/startingandstoppingmongo ********************************************************************* , terminating Sun Jun 22 21:48:19.404 dbexit: Sun Jun 22 21:48:19.404 [initandlisten] shutdown: going to close listening sockets... Sun Jun 22 21:48:19.404 [initandlisten] shutdown: going to flush diaglog... Sun Jun 22 21:48:19.404 [initandlisten] shutdown: going to close sockets... Sun Jun 22 21:48:19.404 [initandlisten] shutdown: waiting for fs preallocator... Sun Jun 22 21:48:19.404 [initandlisten] shutdown: lock for final commit... Sun Jun 22 21:48:19.404 [initandlisten] shutdown: final commit... Sun Jun 22 21:48:19.404 [initandlisten] shutdown: closing all files... Sun Jun 22 21:48:19.405 [initandlisten] closeAllFiles() finished Sun Jun 22 21:48:19.405 dbexit: really exiting now root@ip-XXX-XX-XX-XX:/home/ubuntu# 

我认为是使用不同的configuration文件,但我不知道使用什么configuration文件。 我想mongo自动运行并使用正确的configuration。

另外值得注意的是,如果我这样做:

 sudo service mongodb start 

我得到: mongodb start/running, process 2044

但任何页面使用mongo错误:

 Failed to connect to: 127.0.0.1:27017: Connection refused. 

当你只运行mongod时出错是因为默认的数据库path是/data/db (也就是说,它不是另一个configuration文件,只是你没有指定任何东西而已)。 你似乎是以root身份运行mongod ,这是一个不好的主意,可能是你的问题的来源。 如果启动服务,它将以用户身份运行(通常是mongodmongodb ),所以如果现在由root用户拥有的dbpath有文件(同样,您的日志文件现在可以由root用户拥有),那么它将无法启动权限错误。

您可能必须修复您的权限,正如此答案中所述,以解决此问题,通常应避免将来以root身份运行mongod