Pymongo一直拒绝在27017拒绝连接

时间:2011-10-12 17:35:50

标签: python pymongo

我正在尝试运行与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 个答案:

答案 0 :(得分:41)

中删除mongod.lock
/var/lib/mongodb
rm mongod.lock

然后重新启动服务应该这样做。例如,在我的Ubuntu安装中,重新启动服务器是这样的:

sudo service mongodb start

答案 1 :(得分:11)

按照给定的顺序尝试按照命令执行:

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

sudo mongod --repair

sudo service mongodb start

sudo service mongodb status

现在你可以看到以下作为最后一个命令的输出:

mongodb start/running, process 2796

答案 2 :(得分:7)

对于在远程服务器而不是本地主机上遇到此问题的任何人,请尝试启用外部接口:

  • 转到配置文件(例如/etc/mongodb.conf)
  • 查找bind_ip = 127.0.0.1
  • 注释掉前面带#的行
  • 重启mongod

答案 3 :(得分:6)

看起来您可能没有运行MongoDB服务器。经常让我失望的一件事是,如果服务器被不正当地关闭,它将拒绝再次启动,直到你从数据目录中删除mongod.lock文件。

答案 4 :(得分:2)

我建议运行'mongod --repair',而不是删除mongod.lock。 (我认为最好尽可能地从前门进去。而且可能还有其他的东西,AFAIK。)

答案 5 :(得分:2)

如果你发现这个页面是因为你使用了 Docker 并且你遇到了连接问题, 尝试在您的客户端初始化中使用 mongodb 的 docker 容器名称,而不是 localhost:270170.0.0.0:27017

修复步骤:

  1. 在控制台中写入 docker ps
  2. 找到容器的名称(它位于名为 NAMES 的命令输出的最后一列
  3. MongoClient('mongodb://CONTAINER_NAME')

利润。

答案 6 :(得分:0)

尝试以下命令:

sudo service mongod start
sudo service mongod status

db.py

import pymongo
from pymongo import MongoClient
#mongo client is connected
client = MongoClient()
db     = client['db']

答案 7 :(得分:0)

如果您尝试从服务器(而不是本地主机)连接,请尝试检查mongo安装是否已完成: 你应该有: * / var / lib / mongodb文件 * / var / log / mongodb文件 * mongodb.service作为服务(通过启动服务sudo服务mongodb start进行检查)

如果其中任何一个失败,请尝试重新安装mongo(Failed to start mongod.service: Unit mongod.service not found

这解决了我的问题。 干杯

答案 8 :(得分:0)

对于MongoDb的较新版本(4.x),您可以尝试:

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

sudo systemctl daemon-reload

sudo systemctl start mongod

答案 9 :(得分:0)

首先请确保您已使用sudo apt install mongodb

安装了mongodb

答案 10 :(得分:0)

以上答案都不适合我,因为我正在使用 docker-compose 所以这对我有用:

docker run --rm --volumes-from my-mongo-server mongo unlink "/data/db/mongod.lock"
docker run --rm --volumes-from my-mongo-server mongo --repair

my-mongo-server 替换为您的容器名称/ID。

答案 11 :(得分:0)

谢谢,但对我来说,我只需要停止 mongod 然后重新启动它,它就可以正常工作而无需删除任何东西。 PS:pymongo 2.7.2