mongoengine.connection.ConnectionError:无法连接到数据库默认值:[Errno 111]连接被拒绝
我遇到了将mongoengine加入我的django应用程序的问题。下面是我得到的错误:mongoengine.connection.ConnectionError:无法连接到数据库默认值:[Errno 111]连接被拒绝
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='[email protected]')
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'
一切我搜索没有工作。请帮忙。
所以我想出了我自己的问题。我是mongo的新手,所以我认为它的工作方式与sqlalchemy的工作方式相同,即在pythonanywhere平台上自动创建sqlite数据库,但情况并非如此。
对于大家第一次使用pythonanywhere和mongo,确保你得到一个外部服务(我在Amazon AWS上使用MongoLab)。一旦你建立了一个数据库,你可以通过在mongoengine.connect函数中提供正确的MongoDB URI来连接它。
确保mongodb已启动并正在运行。
service mongod status
service mongod start (on ubuntu)
我试着运行两条线,我得到了以下错误:mongod:无法识别的服务 – no8do
您使用的是哪个操作系统?你有没有正确安装mongodb?按照mongoDB安装说明(https://docs.mongodb.org/manual/administration/install-on-linux/)教程,确保它已正确安装在所需的操作系统上 –
Pymongo 3.0及以上版本都有这个problem.you应该先卸载最新版本,然后安装python-pymongo == 2.8.1
在/ var/lib中/ MongoDB的拆卸mongod.lock并重新启动服务或可能(如果你没有),你可以尝试从这里的解决方案http://stackoverflow.com/questions/24899849/connection-refused-to-mongodb-errno-111 –
我查找/ var/lib中的mongodb文件夹/并找不到它。你知道什么可能导致这个问题?我已经通过pip3安装 - 用户mongoengine安装了mongonenine。 – no8do