【问题标题】:MongoDB : Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refusedMongoDB:无法连接到 127.0.0.1:27017,原因:errno:61 连接被拒绝
【发布时间】:2014-10-28 15:48:07
【问题描述】:

我的问题与本网站上的其他输入和建议类似,但没有一个对我有帮助。安装MongoDB后,由于数据库没有运行,一直没有启动。

首先尝试运行 mongo,我回答了这个问题:

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权限的/data/db了,我是 使用 OSX Mavericks 10.9.5

【问题讨论】:

  • 只是把它放在那里 - 我只是打开和关闭我的电脑,它又开始工作了。这在我身上发生过两次

标签: mongodb osx-mavericks database


【解决方案1】:

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

如果是这样,那么你正在做的事情如下:

  1. 启动 shell,尝试连接到未运行的数据库(连接被拒绝)
  2. 启动数据库,在日志中看到 0 个连接
  3. 停止数据库(Ctrl-C 或类似),启动 shell,由于数据库已关闭而无法再次连接
  4. 启动数据库,在日志中看到 0 个连接
  5. 重复

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

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

【讨论】:

  • 谢谢,它成功了。在后台运行 mongod,可以从 mongo sell 中访问。你能告诉我你推荐给这个文件夹什么样的权限吗?再次感谢 =)
  • 假设它归您所有,并且您以自己的身份运行 mongod(不使用 sudo),那么 755 就可以了,您只是不希望它在世界范围内可写。如果它不属于您,请先将其 chown(chown -R user:staff /data/db - 将用户替换为您的实际用户名)。
  • 非常感谢 =) 非常有帮助 = D
  • 感谢网络上所有的答案,这个对我有用。
【解决方案2】:

试试这个命令。

sudo chown mongodb /tmp/mongodb-27017.sock

sudo service mongod 重启

【讨论】:

  • 谢谢,这帮助我解决了我与本地 mongodb 服务器有 reg 连接的问题
【解决方案3】:

已修复!

原因是 /etc/mongodb.conf 中的 dbpath 变量。以前,我使用的是 mongodb 1.8,其中 dbpath 的默认值为 /data/db。新贵作业 mongodb(带有 mongodb-10gen 包)使用 --config /etc/mongodb.conf 选项调用 mongod。

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

像这样:转到“/data”终端中的位置,然后输入

sudo chown -R <username>:foldername

例如:

sudo chown -R raja db/

【讨论】:

    【解决方案4】:

    您好,请检查您是否创建了 /data/db 路径,如果创建了,则使用 chmod 授予 755 权限。

    【讨论】:

    • 欢迎来到 SO!对于这个问题,已经有一个公认的答案,作者确认它正在工作。请避免添加答案,除非他们提供新的东西。此外,使用 777 运行可能是一个安全问题,应该避免。
    猜你喜欢
    • 2017-08-22
    • 2014-11-30
    • 2014-06-18
    • 2023-01-10
    • 1970-01-01
    • 2014-12-22
    • 2020-03-12
    • 1970-01-01
    相关资源
    最近更新 更多