如果没有指定自己的配置路径,mongod 将无法运行

如果没有指定自己的配置路径,mongod 将无法运行

我最近升级了我的 apt-get,现在 mongod 运行不正常。

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

并保持终端打开以使其正常工作。

如果我只是运行 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#

我推测它使用了不同的配置文件,但我不知道它使用的是哪个配置文件。我希望 mongo 能够自动运行并使用正确的配置。

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

sudo service mongodb start

我得到:mongodb start/running, process 2044

但任何使用 mongo 的页面都会出现以下错误:

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

答案1

运行时出现错误mongod是因为默认数据库路径是/data/db(即它不是另一个配置文件,只是您不指定任何内容时得到的路径)。您似乎mongod以 root 身份运行,这通常不是一个好主意,并且可能是问题的根源。如果您启动该服务,它将以用户身份运行(通常mongodmongodb),因此如果现在有文件dbpath归 root 用户所有(类似地,您的日志文件现在可能归 root 所有),那么它将无法启动并出现权限错误。

您可能需要修复您的权限,如这个答案来修复这个问题,并且一般来说应该避免mongod在将来以 root 身份运行。

答案2

确保您的dbpath目录存在并且可以访问mongodb。这对我来说有效:

chown mongodb:mongodb /var/lib/mongodb -R

替换/var/lib/mongodb为您的dbpath目录。

相关内容