我是 Django 和 shell 的极端新手。因此,请温柔。我在一个网站上工作,该网站的所有者失去了与开发人员的关系,因此失去了管理员帐户(前端和后端)的密码。我正在尝试为两者创建 super 用户,但我遇到了数据库问题。该站点使用 PostgreSQL 数据库。在 shell 中,我激活虚拟环境并运行我的命令:
python3 manage.py createsuperuser
请求并输入电子邮件地址,但在几行脚本后收到错误。
django.db.utils.OperationalError: FATAL: password authentication failed for the user "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 文件指向演示数据库- 必须更改为指向生产数据库。完全同意 - 设置不当,但我现在可以访问了。
最佳答案
可能是您(或其他人)更改了数据库的密码。
看看你的DATABASES在您的 settings.py
文件中设置并更新 PASSWORD
字段。
编辑:
您的 manage.py
使用与站点不同的数据库设置。从 manage.py
文件中删除 if __name__ == '__main__':
并尝试添加用户。
顺便说一句。以这种方式区分 prod
env 和 dev
env 是非常糟糕的解决方案。
关于python - 无法为 Django 站点创建 super 用户 - PostgreSQL 数据库 - fatal error : password authentication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40511913/