MongoDB:无法连接到127.0.0.1:27017,原因是:errno:61连接被拒绝

问题描述:

我的问题类似于本网站上的其他输入和建议,但没有人帮助过我。安装MongoDB后,由于数据库未运行,尚未启动。MongoDB:无法连接到127.0.0.1:27017,原因是:errno:61连接被拒绝

首先尝试运行蒙戈,我回答了这个:

Mac-Pro-de-User: ~ user $ mongo 
MongoDB shell version: 2.6.4 
connecting to: test 
2014-10-28T10: 47: 08713-0700 warning: Failed to connect to 127.0.0.1:27017, reason: errno: 61 Connection refused 
2014-10-28T10: 47: 08713-0700 Error: could not connect to server 127.0.0.1:27017 (127.0.0.1) Attempt connection failed at src/mongo/shell/mongo.js: 146 
exception: connect failed 

然后尝试检查的mongod,我回答了这个:

Mac-Pro-de-User: ~ user $ mongod 
mongod --help for help and startup options 
2014-10-28T10: 59: 34485-0700 [initandlisten] MongoDB starting: pid = 926 port = 27017 dbpath =/data/db host = 64-bit Mac-Pro-de-Ernesto.local 
2014-10-28T10: 59: 34485-0700 [initandlisten] 
2014-10-28T10: 59: 34485-0700 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, Should be at Least 1000 
2014-10-28T10: 59: 34485-0700 [initandlisten] db version v2.6.4 
2014-10-28T10: 59: 34485-0700 [initandlisten] git version: 3a830be0eb92d772aa855ebb711ac91d658ee910 
2014-10-28T10: 59: 34485-0700 [initandlisten] Build info: Darwin bs-osx108-4 12.5.0 Darwin Kernel Version 12.5.0: Sun Sep 29 13:33:47 PDT 2013; root: xnu-2050.48.12 ~ 1/x86_64 RELEASE_X86_64 BOOST_LIB_VERSION = 1_49 
2014-10-28T10: 59: 34485-0700 [initandlisten] allocator: system 
2014-10-28T10: 59: 34485-0700 [initandlisten] options: {} 
2014-10-28T10: 59: 34486-0700 [initandlisten] journal dir =/data/db/journal 
2014-10-28T10: 59: 34486-0700 [initandlisten] recover: no journal files present, no recovery needed 
2014-10-28T10: 59: 34500-0700 [FileAllocator] allocating new datafile /data/db/local.ns, filling zeroes With ... 
2014-10-28T10: 59: 34500-0700 [FileAllocator] creating directory/data/db/_tmp 
2014-10-28T10: 59: 34512-0700 [FileAllocator] done allocating datafile /data/db/local.ns, size: 16MB, took 0.011 secs 
2014-10-28T10: 59: 34726-0700 [FileAllocator] allocating new datafile /data/db/local.0, filling zeroes With ... 
2014-10-28T10: 59: 35398-0700 [FileAllocator] done allocating datafile /data/db/local.0, size: 64MB, took 0.671 secs 
2014-10-28T10: 59: 35695-0700 [initandlisten] build index on: local.startup_log properties: {v: 1, key: {_id: 1}, name: "_id_" ns "local.startup_log"} 
2014-10-28T10: 59: 35695-0700 [initandlisten] index added to empty collection 
2014-10-28T10: 59: 35695-0700 [initandlisten] Local command $ cmd command. Create {create: "startup_log" size: 10485760, capped: true} ntoreturn: 1 KeyUpdates: 0 numYields: 0 reslen: 37 1194ms 
2014-10-28T10: 59: 35695-0700 [initandlisten] waiting for connections on port 27017 
2014-10-28T11: 00: 34516-0700 [clientcursormon] mem (MB) res: 33 virt: 2653 
2014-10-28T11: 00: 34516-0700 [clientcursormon] mapped (incl journal view): 160 
2014-10-28T11: 00: 34516-0700 [clientcursormon] connections: 0 

,然后再次尝试连接并花一些时间,再说一样:

2014-10-28T11: 05: 34589-0700 [clientcursormon] mem (MB) res: 33 virt: 2653 
2014-10-28T11: 05: 34589-0700 [clientcursormon] mapped (incl journal view): 160 
2014-10-28T11: 05: 34589-0700 [clientcursormon] connections: 0 

等等。如果你能提供帮助,将不胜感激。

PS:已经有777个权限/数据/ DB和我使用OSX小牛 10.9.5

+0

只要把它放在那里 - 我只需打开和关闭电脑,它就开始工作了。这发生在我身上两次 – James111 2015-11-27 00:40:26

你运行所有这些命令在同一个终端作为单独的行动作为你的时间戳建议? (如果不是,我希望看到故障和日志之间的重叠,以便正确诊断)。

如果是这样,那么你在做什么如下:

  1. 启动外壳,尝试连接到未运行的数据库(拒绝连接)
  2. 启动数据库,看到在0连接日志
  3. 停止数据库(按Ctrl-C或类似),开始一个空壳,无法重新连接,因为数据库已经关闭
  4. 启动数据库,看到在日志0连接
  5. 重复

数据库需要与shell同时运行,以便可以连接到它。因此,您应该在一个终端中启动mongod进程,使其保持运行状态,然后打开新的终端(或选项卡)并运行mongo命令以连接到仍在运行的数据库。另一个选项是run mongod as a daemon,它允许您在返回后在同一终端中运行mongo命令。

注意:您永远不应该有一个拥有777权限的文件夹,这不是必需的,并且是一个重大的安全风险。

+1

谢谢,它工作。在后台运行mongod,可以从mongo卖出。你能告诉我什么样的权限,你建议这个文件夹。再次感谢=) – 2014-10-28 20:31:33

+1

假设它属于你,并且你正在运行mongod作为你自己(不使用sudo),那么755就可以,你只是不希望它是世界上可写的。如果它不属于你,那么首先(chown -R user:staff/data/db') - 用你的实际用户名替换用户。 – 2014-10-28 22:07:12

+0

非常感谢你=)非常有帮助= D – 2014-10-29 19:18:40

试试这个命令。

须藤CHOWN MongoDB的/tmp/mongodb-27017.sock

而且

须藤服务的mongod重启

固定!

原因是/etc/mongodb.conf中的dbpath变量。以前,我使用的是mongodb 1。8,其中dbpath的默认值是/ data/db。新贵的工作mongodb(与mongodb-10gen包一起)通过--config /etc/mongodb.conf选项调用mongod。

作为解决方案,我只需递归更改/ data/db目录的所有者。

像这样:转到 “/数据” 位置在终端然后键入

sudo chown -R <username>:foldername

例如:

sudo chown -R raja db/

你好只检查如果你创建了/ data/db路径,并且你确实给了755元与chmod的任务。

+1

欢迎来到SO!已经有一个公认的答案来解决作者确认工作的这些问题。请避免添加答案,除非他们提供新的东西。另外运行777可能是一个安全问题,应该避免。 – ext 2017-11-28 23:56:40