Pymongo продолжает отказывать в соединении на 27017 - PullRequest
37 голосов
/ 12 октября 2011

Я пытаюсь запустить простое соединение с 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

Как мне это исправить?

Ответы [ 6 ]

41 голосов
/ 07 ноября 2011

Удаление mongod.lock из

/var/lib/mongodb
rm mongod.lock

И затем перезапуск службы должен сделать это.Например, в моей установке Ubuntu перезапуск сервера выглядит примерно так:

sudo service mongodb start
11 голосов
/ 25 июня 2014

Просто попробуйте выполнить следующие команды в указанном порядке:

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

sudo mongod --repair

sudo service mongodb start

sudo service mongodb status

Теперь вы можете видеть следующее как вывод последней команды:

mongodb start/running, process 2796

7 голосов
/ 12 августа 2014

Для тех, у кого возникла эта проблема на удаленном сервере, а не на локальном хосте, попробуйте включить внешние интерфейсы:

  • Перейдите в файл конфигурации (например, /etc/mongodb.conf)
  • Найти bind_ip = 127.0.0.1
  • Закомментируйте эту строку с # в начале
  • Перезапустить Mongod
6 голосов
/ 12 октября 2011

Похоже, вы не используете сервер MongoDB.Меня часто сбивает с толку то, что если сервер был нечисто выключен, он откажется запускаться снова, пока вы не удалите файл mongod.lock из каталога данных.

2 голосов
/ 20 декабря 2012

Вместо удаления mongod.lock, я бы порекомендовал запустить 'mongod --repair'. (Я полагаю, что лучше входить через входную дверь всякий раз, когда это возможно. И могут быть и другие вещи, которые это ловит, AFAIK.)

0 голосов
/ 11 января 2019

Попробуйте следующие команды:

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']
...