【问题标题】:Django always connects to localhost mongodbDjango 总是连接到 localhost mongodb
【发布时间】:2019-06-05 02:44:43
【问题描述】:

我已按照 db connection config 的指南进行操作: 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
    }
}

【问题讨论】:

  • 您需要发布您的设置。
  • @DanielRoseman 我在这里添加了我的数据库设置

标签: django djongo


【解决方案1】:

首先:在 localhost 上创建一个到远程 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。

这对我有用。

【讨论】:

    【解决方案2】:

    似乎在某个地方,djongo 改变了数据库设置的结构。在浪费了几天的时间试图找到解决方案之后,我遇到了一个具有更新结构的页面,尝试将您的 DATABASE 结构设置为:

    DATABASES = {
      'default': {  
        'ENGINE':   'djongo',
        'NAME':     'yourmongodb',
        'CLIENT': {
          'host': 'some-host.or.ip',
          'port': 27017,
          'username': 'youruser',
          'password': 'yourdbpass',
          'authSource': 'yourcollection',
        }
      },
    }
    

    【讨论】:

      【解决方案3】:

      您是否在 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'"
              }
          }
      }
      

      【讨论】:

      • 是的。我遵循了这种格式,但它不起作用
      • 但是我正在通过 djongo 连接到 mongodb。它的文件说引擎行应该是'ENGINE':'djongo'
      猜你喜欢
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2015-03-26
      • 2012-02-12
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 2019-06-13
      相关资源
      最近更新 更多