无法为Django站点创建超级用户 - PostgreSQL数据库 - 致命错误:密码身份验证

时间:2016-11-09 16:40:14

标签: python django postgresql

我是Django的极端新手并使用shell。所以请温柔。我正在一个网站上,业主已失去与开发人员的关系,因此密码管理员帐户(前端和后端)。我正在尝试为两者创建超级用户,但我遇到了数据库问题。该站点使用PostgreSQL数据库。在shell中,我激活虚拟环境并运行我的命令:

  

python3 manage.py createsuperuser

请求输入电子邮件地址并输入,但在几行脚本后收到错误。

  

django.db.utils.OperationalError:致命错误:用户" xxx"的密码验证失败。

在运行命令之前,我是否需要以某种方式激活或启用与数据库的连接?再次真正的新,而不是试图成为网站上的开发人员 - 只是试图获得访问权限和创建用户。非常感谢。

基于以下对话的补充

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'hci',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    }
}

除了base.py

from .base import *

DEBUG = True

TEMPLATES[0]['OPTIONS']['debug'] = True

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
     }
}

DATABASES['default'].update({
    'NAME': 'xxx_hcidemo',
    'USER': 'xxx_hcidemo',
    'PASSWORD': 'xxxxxxxxxx',
    'HOST': 'localhost',
})

BROKER_URL = 'redis://localhost:11201/0'
CELERY_RESULT_BACKEND = 'redis://localhost:11201/0'

整个demo.py文件,删除了密码和用户名....

发现了解决方案!许多thx- manage.py文件指向演示数据库 - 必须更改为指向生产数据库。完全同意 - 糟糕的设置,但我现在可以访问。

1 个答案:

答案 0 :(得分:1)

可能您(或其他人)将密码更改为数据库。

查看settings.py个文件中的DATABASES次设置并更新PASSWORD字段。

修改

您的manage.py使用与网站不同的数据库设置。从if __name__ == '__main__':文件中删除manage.py并尝试添加用户。

顺便说一句。以这种方式解决prod env dev env的非常糟糕的解决方案。