无法连接到MongoDB errno:61

19
我使用MacPorts安装了MongoDB,并尝试运行mongo命令来启动mongo shell。但是,我收到了以下错误信息:
warning: Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused

Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed 
at src/mongo/shell/mongo.js:146

我运行了mongod,然后收到以下错误:

$ [initandlisten] MongoDB starting : pid=11984 port=27017 dbpath=/data/db 64-bit host=Nikitas-MacBook-Air.local
$ [initandlisten] 
$ [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
$ [initandlisten] db version v2.6.0
$ [initandlisten] git version: nogitversion
$ [initandlisten] build info: Darwin tennine-slave.macports.org 13.1.0 Darwin Kernel Version 
13.1.0: Thu Jan 16 19:40:37 PST 2014; root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_55
$ [initandlisten] allocator: tcmalloc
$ [initandlisten] options: {}
$ [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
$ [initandlisten] dbexit: 
$ [initandlisten] shutdown: going to close listening sockets...
$ [initandlisten] shutdown: going to flush diaglog...
$ [initandlisten] shutdown: going to close sockets...
$ [initandlisten] shutdown: waiting for fs preallocator...
$ [initandlisten] shutdown: lock for final commit...
$ [initandlisten] shutdown: final commit...
$ [initandlisten] shutdown: closing all files...
$ [initandlisten] closeAllFiles() finished
$ [initandlisten] dbexit: really exiting now

我应该在哪里创建 /data/db 目录,是在根目录下吗?第二个错误是否是我运行 mongo 时出现 errno:61 的原因?

3个回答

23

我遇到了类似的问题。我在这篇博客中详细描述了错误跟踪和解决方案。以下是我解决此问题所采取的逐步过程:

第一步 - 安装(如果您已经安装了MongoDB,则不需要执行此步骤):

brew update
brew install mongodb

第二步 - 运行Mongo守护进程:

mkdir -p /data/db
sudo mongod

第三步 - 运行Mongo Shell界面:

mongo

在这个序列中,我能够成功执行mongo命令而没有出现任何错误。


我有一个问题,是否应该始终保留一个终端窗口用于mongod进程? - Sinux
如果您希望它在启动时自动启动,可以使用位于 mongodb网站 上的简单实用程序。它具有在启动时自动启动服务器的选项。 - Ali Raza Bhayani

20

是的,您需要在根目录下创建/data/dbMongoDB文档建议在OS X上使用以下命令进行创建:mkdir -p /data/db

关于您的第二个问题,也是的。由于Mongo守护程序无法启动并且未在监听中,因此会出现连接错误。

MongoDB默认将/data/db用作数据目录。您可以使用mongod命令的--dbpath选项覆盖默认设置(也可在上述文档链接中找到)。


2
这个方法有效,谢谢。我创建了目录并使用“sudo mongod”打开了连接。之后我使用“mongo”,最终成功打开了shell的连接。 - Michael
也许 mongod 用户应该拥有这个目录? - anonymous

3
** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000

您可以在/etc/bashrc中添加一行代码,这样警告就会消失。

ulimit -S -n 1024

使用chown -R {用户} /data/db/data/db的所有者从root更改为您自己。然后,您只需使用mongo就可以启动mongo shell,无需使用sudo mongo


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接