【发布时间】:2014-04-23 04:31:18
【问题描述】:
从 GitHub 下载项目后,尝试在本地运行它。我使用命令创建了一个数据库(我使用的是 Postgres 9.1):
postgres = # CREATE NameUser django createDB WITH PASSWORD 'MyPass';
CREATE ROLE
postgres = # CREATE DATABASE DatabaseName OWNER NameUser;
CREATE DATABASE
然后在设置文件中我有这个代码:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2'
'NAME': 'DatabaseName',
'USER': 'NameUser'
'PASSWORD': 'MyPass'
'HOST': 'localhost',
'PORT':'',
}
}
命令后:./manage.py resetdb,接收:
OperationalError: FATAL: password authentication failed for user "NameUser"
FATAL: password authentication failed for user "NameUser"
我在 stackoverflow 上发现原因可能是相应的文件 pg_hba.conf。修改后的样子是这样的:
# Database administrative login by Unix domain socket
local all postgres md5
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
请帮忙。
【问题讨论】:
-
在 Postgres 中,角色名称是区分大小写的,但是当不加引号时,它们会被大小写折叠成小写。所以你实际上已经创建了一个名为“nameuser”的角色。 (还有一个名为“databasename”的数据库。)
-
@MilenA.Radev 谢谢。它有效。
标签: database django postgresql authentication passwords