Pymongo一直拒绝在27017的连接

60 投票
12 回答
117784 浏览
提问于 2025-04-17 04:10

我正在尝试用pymongo建立一个简单的连接,但总是提示连接被拒绝。

这是我尝试过的:

>>>from pymongo import Connection
>>>connection = Connection('localhost',27017)

这是我得到的结果:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pymongo-2.0.1_-py2.7-linux i686.egg/pymongo/connection.py", line 348, in __init__
 self.__find_node()
File "/usr/local/lib/python2.7/dist-packages/pymongo-2.0.1_-py2.7-linux- i686.egg/pymongo/connection.py", line 627, in __find_node
  raise AutoReconnect(', '.join(errors))
pymongo.errors.AutoReconnect: could not connect to localhost:27017: [Errno 111]     Connection refused

我该怎么解决这个问题呢?

12 个回答

14

只需按照以下顺序尝试这些命令:

sudo rm /var/lib/mongodb/mongod.lock

sudo mongod --repair

sudo service mongodb start

sudo service mongodb status

就这样,现在你可以看到最后一个命令的输出结果是:

mongodb 正在启动/运行,进程号 2796

17

如果你看到这个页面,是因为你在使用Docker,并且遇到了连接问题,试着在你的客户端初始化时使用MongoDB的Docker容器名称,而不是用localhost:270170.0.0.0:27017

解决步骤:

  1. 在控制台输入docker ps
  2. 找到容器的名称(它在命令输出的最后一列,叫做NAMES
  3. 使用MongoClient('mongodb://容器名称')

搞定。

57

要删除 mongod.lock 文件,你需要去 /var/lib/mongodb 这个文件夹里。

sudo rm /var/lib/mongodb/mongod.lock

然后重启服务就可以了。比如在我的Ubuntu系统中,重启服务器的命令大概是这样的:

sudo service mongodb start

撰写回答