【问题标题】:pymongo.errors.ConnectionFailure: [Errno 61] Connection refusedpymongo.errors.ConnectionFailure:[Errno 61] 连接被拒绝
【发布时间】:2015-05-17 04:13:54
【问题描述】:

我测试了一个连接MongoDB的python程序,使用名为pymongo的DB驱动程序,但收到以下错误。

相关环境:

  • MongoDB:版本 = 2.6.1
  • Python:版本 = 2.7.9
  • pymongo:版本 = 2.8

而且,错误是:

>>> import pymongo
>>> conn = pymongo.Connection('localhost', 27017)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/pymongo/connection.py", line 241, in __init__
    max_pool_size, document_class, tz_aware, _connect, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/pymongo/mongo_client.py", line 377, in __init__
    raise ConnectionFailure(str(e))
pymongo.errors.ConnectionFailure: [Errno 61] Connection refused

这有什么问题?

【问题讨论】:

  • mongod 是否正在运行并接受匿名连接?

标签: mongodb python-2.7 connection pymongo


【解决方案1】:

首先,您必须使用 cmd 以 root 用户身份连接到终端: “sudo mongod”并确保您的文件夹 /data/db 没有任何编辑限制。

【讨论】:

    【解决方案2】:

    关于您的问题,由于 Mongo 守护程序无法启动并且没有在监听,您会收到连接错误。 您可以尝试以下步骤:

    1. MongoDB 将 /data/db 设为默认数据目录。

    2. 您应该通过 mongod 命令启动 MongoDB。

      ~ » mongod
      mongod --help for help and startup options 2015-05-17T11:42:54.041+0800 [initandlisten] MongoDB starting : pid=7543 port=27017 dbpath=/data/db 64-bit host=simbazz 2015-05-17T11:42:54.042+0800 [initandlisten] 2015-05-17T11:42:54.042+0800 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 2015-05-17T11:42:54.042+0800 [initandlisten] db version v2.6.1 2015-05-17T11:42:54.042+0800 [initandlisten] git version: 4b95b086d2374bdcfcdf2249272fb552c9c726e8 2015-05-17T11:42:54.042+0800 [initandlisten] build info: Darwin mci-osx108-6.build.10gen.cc 12.5.0 Darwin Kernel Version 12.5.0: Sun Sep 29 13:33:47 PDT 2013; root:xnu-2050.48.12~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49 2015-05-17T11:42:54.042+0800 [initandlisten] allocator: system 2015-05-17T11:42:54.042+0800 [initandlisten] options: {} 2015-05-17T11:42:54.042+0800 [initandlisten] journal dir=/data/db/journal 2015-05-17T11:42:54.042+0800 [initandlisten] recover : no journal files present, no recovery needed 2015-05-17T11:42:54.635+0800 [initandlisten] waiting for connections on port 27017
    3. 重新尝试通过 pymongo 驱动程序连接到 MongoDB。 (在 python 外壳中)

      >>> conn = pymongo.Connection('localhost', 27017)
      >>>
    4. MongoDB 在 shell 窗口上打印日志信息,如下所示:

      2015-05-17T11:43:40.514+0800 [initandlisten] connection accepted from 127.0.0.1:60862 #1 (1 connection now open)
      2015-05-17T11:43:54.209+0800 [PeriodicTaskRunner] task: DBConnectionPool-cleaner took: 28ms
      2015-05-17T11:43:54.214+0800 [PeriodicTaskRunner] task: WriteBackManager::cleaner took: 5ms
      2015-05-17T11:43:54.221+0800 [clientcursormon] mem (MB) res:33 virt:2654
      2015-05-17T11:43:54.221+0800 [clientcursormon]  mapped (incl journal view):160
      2015-05-17T11:43:54.221+0800 [clientcursormon]  connections:1
      

    希望能帮到你:)

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 2014-09-28
      • 2017-04-10
      • 2019-08-07
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 2014-03-01
      相关资源
      最近更新 更多