MongoDB: сброс соединения по одному
Вопрос
У меня есть сервер Mongo, работающий на коробке Ubuntu, и я пытаюсь подключиться к нему с Pimongo, используя обычный синтаксис:
from pymongo import Connection
c = Connection('db.example.com', 27017)
Это отлично работает на недавней модели Intel Mac (OS 10.6). Однако тот же код на более старой башне G5 (10.5) выбрасывает эту ошибку:
pymongo.errors.AutoReconnect: [Errno 54] Connection reset by peer
Вывод Mongo в отчетах сервера:
connection accepted from oldmac.example:57681 #3
bad recv() len: 973078528
end connection oldmac.example:57681
Я знаю, что я не могу запустить сервер MongoDB с MAC PPC, но кажется странным, что я не смогу подключиться к удаленной базе данных. Или что -то еще виновато?
Решение
Похоже, Майк Дирольф уже ответил на ваш вопрос в группе Google MongoDB. Но для людей, испытывающих ту же проблему и оказываются на этой странице, решение от Майка Дирольфа:
Вы используете расширение C? (Попробуйте pymongo.has_c ()). Я бы не подумал, что расширение C будет даже построить на PPC, но если это так, это почти наверняка причина, по которой это не работает. Вы можете установить без
python setup.py install --no_ext
А потом я ожидал, что все будет работать.- Майк Дирольф
Другие советы
Я смог решить эту же проблему, используя MongoClient
вместо устаревшего Connection
.
От Водитель Python для mongodb страница
ПРЕДУПРЕЖДЕНИЕ УСТАНОВНО: связь устарела. Пожалуйста, используйте Mongoclient вместо этого.
Для получения дополнительной информации см. Новый МОГОЦИАЛЬНАЯ ДОКУМЕНТАЦИЯ для Python.