mongoengine.connection.ConnectionError:无法连接到数据库默认值:[Errno 111]连接被拒绝

时间:2015-11-04 06:54:43

标签: python django mongoengine

我遇到了将mongoengine纳入我的django应用程序的问题。以下是我得到的错误:

Traceback (most recent call last):
  File "/home/dk2459/.local/lib/python3.4/site-packages/pymongo/mongo_client.py", line 374, in __init__
    self._ensure_connected(True)
  File "/home/dk2459/.local/lib/python3.4/site-packages/pymongo/mongo_client.py", line 939, in _ensure_connected
    self.__ensure_member()
  File "/home/dk2459/.local/lib/python3.4/site-packages/pymongo/mongo_client.py", line 813, in __ensure_member
    member, nodes = self.__find_node()
  File "/home/dk2459/.local/lib/python3.4/site-packages/pymongo/mongo_client.py", line 904, in __find_node
    raise AutoReconnect(', '.join(errors))
pymongo.errors.AutoReconnect: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/dk2459/.local/lib/python3.4/site-packages/mongoengine/connection.py", line 133, in get_connection
    _connections[alias] = connection if connection else connection_class(**conn_settings)
  File "/home/dk2459/.local/lib/python3.4/site-packages/pymongo/mongo_client.py", line 377, in __init__
    raise ConnectionFailure(str(e))
pymongo.errors.ConnectionFailure: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "create_admin.py", line 7, in <module>
    connect('happy_lens')
  File "/home/dk2459/.local/lib/python3.4/site-packages/mongoengine/connection.py", line 173, in connect
    return get_connection(alias)
  File "/home/dk2459/.local/lib/python3.4/site-packages/mongoengine/connection.py", line 135, in get_connection
    raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
mongoengine.connection.ConnectionError: Cannot connect to database default :
[Errno 111] Connection refused

以下是我正在尝试运行的代码:

import getpass

from mongoengine import connect

from models import User

connect('happy_lens')

admin = User(username='dk', email='someemail@gmail.com')
admin.password='pwd'
admin.save()

以下是相关的settings.py代码:

DATABASES = {
    'default' : {
        'ENGINE': 'django_mongodb_engine',
        'NAME': 'happy_lens',
        'HOST': '192.168.1.35',
        'POST': 12345

   }
}

SESSION_ENGINE = 'mongoengine.django.sessions'

我搜索过的所有内容都无效。请帮忙。

3 个答案:

答案 0 :(得分:2)

所以我想出了自己的问题。我是mongo的新手,所以我认为它的工作方式与sqlalchemy相同,在pythonanywhere平台上会自动创建一个sqlite DB,但实际情况并非如此。

对于第一次使用pythonanywhere和mongo的所有人,请确保您获得外部服务(我在Amazon AWS上使用MongoLab)。设置数据库后,可以通过在mongoengine.connect函数中提供正确的MongoDB URI来连接它。

答案 1 :(得分:1)

Pymongo 3.0及以上版本有这个问题。你应该首先卸载最新版本,然后安装python-pymongo == 2.8.1

答案 2 :(得分:0)

确保mongodb启动并运行。

service mongod status
service mongod start (on ubuntu)