Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pymongo一直拒绝接通27017_Python_Pymongo - Fatal编程技术网

Python Pymongo一直拒绝接通27017

Python Pymongo一直拒绝接通27017,python,pymongo,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/

我试图运行到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

如何修复此问题?

看起来您可能没有运行MongoDB服务器。有一件事经常让我感到困惑,那就是如果服务器不干净地关闭,它将拒绝再次启动,直到您从数据目录中删除mongod.lock文件。

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

然后重启服务就可以了。例如,在我的Ubuntu安装中,重新启动服务器是这样的:

sudo service mongodb start

与其删除mongod.lock,不如建议运行“mongod-repair”。我想只要可能,最好从前门进去。另外,这可能还会捕获其他内容。

请按给定顺序尝试以下命令:

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

sudo mongod --repair

sudo service mongodb start

sudo service mongodb status
现在您可以看到最后一个命令的输出:


mongodb启动/运行,进程2796对于在远程服务器而不是本地主机上出现此问题的任何人,请尝试启用外部接口:

转到配置文件ex./etc/mongodb.conf 查找绑定ip=127.0.0.1 用前面的a注释掉那一行 重新启动mongod
尝试以下命令:

sudo service mongod start
sudo service mongod status
db.py


如果您试图从本地主机以外的服务器连接,请尝试检查mongo安装是否完成: 你应该: */var/lib/mongodb文件 */var/log/mongodb文件 *通过启动服务sudo服务mongodb start来检查mongodb.service as服务

如果其中任何一个失败,请尝试重新安装mongo

这解决了我的问题。
干杯

对于较新版本的MongoDb,您可以尝试:

sudorm/var/lib/mongodb/mongod.lock

sudo systemctl后台程序重新加载


sudo systemctl start mongod

首先确保您已经使用sudo apt install mongodb安装了mongodb

如果您发现此页面是因为您使用Docker,并且您面临连接问题, 尝试在客户端初始化中使用mongodb的docker容器名称,而不是localhost:27017或0.0.0.0:27017

修复的步骤:

在控制台中写入docker ps 在名为NAMES的命令输出的最后一列中找到容器的名称 MongoClient'mongodb://CONTAINER_NAME'
利润。

以上所有答案都不适用于我,因为我正在使用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

用您的容器名称/id替换我的mongo服务器。

谢谢,但对我来说,我只需要停止mongod,然后重新启动它,它工作正常,无需删除任何内容。附言:pymongo 2.7.2

还算不错。虽然我不记得尺寸是这里的一个因素。我的答案对于使用较小数据集的人来说当然有效。应该是sudo服务mongodb start而不是sudo服务mongod startpath应该是/var/lib/mongodb.C:\Program Files\mongodb\Server\4.0\Windows上的数据谢谢@这实际上取决于您使用的是Ubuntu mongodb上的默认包还是官方mongodb包。在后一种情况下,mongod和not mongodb是服务守护进程名称
import pymongo
from pymongo import MongoClient
#mongo client is connected
client = MongoClient()
db     = client['db']
docker run --rm --volumes-from my-mongo-server mongo unlink "/data/db/mongod.lock"
docker run --rm --volumes-from my-mongo-server mongo --repair