我遵循了数据库连接配置指南: https://nesdis.github.io/djongo/database-configuration/
但是,它始终连接到本地主机之一,而不是我的设置。
有人对此事有想法吗?
我的软件包版本:
Django 2.0
django-cors-headers 2.4.0
django-rest-auth 0.9.3
djangorestframework 3.9.0
djongo 1.1
mongoengine 0.16.3
pip 10.0.1
pymongo 3.7.2
urllib3 1.24.1
我的设置
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'test_db',
'HOST': 'somewhere.com',
'PORT': 27017
}
}
答案 0 :(得分:5)
似乎djongo改变了数据库设置的结构。在浪费几天的时间来寻找解决方案之后,我遇到了一个页面,该页面具有更新的结构,尝试将DATABASE结构设置为此:
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'yourmongodb',
'CLIENT': {
'host': 'some-host.or.ip',
'port': 27017,
'username': 'youruser',
'password': 'yourdbpass',
'authSource': 'yourcollection',
}
},
}
答案 1 :(得分:0)
您是否已在settings.py文件中编辑设置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'XXXX',
'USER': 'XXX',
'PASSWORD': 'XXXX',
'HOST': 'XXX.XXX.XXX.XXX',
'PORT': '3306',
'OPTION': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
}
}
}
答案 2 :(得分:0)
首先:在本地主机上创建一个到远程mysql服务器的SSH隧道
ssh -N -L 3306:127.0.0.1:3306 root@192.168.0.122
192.168.0.122 >> 是我的远程局域网服务器。
第二:使用 127.0.0.1 作为 Django 连接字符串上的 HOST。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'XXXX',
'USER': 'XXX',
'PASSWORD': 'XXXX',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTION': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
}
}
如果使用环境文件,或者在 .env 中将 HOST 更改为 127.0.0.1。
这对我有用。