OperationalError:致命错误:用户"UserName"的密码验证失败

Mar*_*usz 5 database authentication passwords django postgresql

从GitHub下载项目后,尝试在本地运行它.我使用命令创建了一个数据库(我正在使用Postgres 9.1):

postgres = # CREATE NameUser django createDB WITH PASSWORD 'MyPass';
CREATE ROLE
postgres = # CREATE DATABASE DatabaseName OWNER NameUser;
CREATE DATABASE
Run Code Online (Sandbox Code Playgroud)

然后在设置文件中我有这个代码:

DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.postgresql_psycopg2'
         'NAME': 'DatabaseName',
         'USER': 'NameUser'
         'PASSWORD': 'MyPass'
         'HOST': 'localhost',
         'PORT':'',
     }
}
Run Code Online (Sandbox Code Playgroud)

命令后:./manage.py resetdb,收到:

OperationalError: FATAL: password authentication failed for user "NameUser"
FATAL: password authentication failed for user "NameUser"
Run Code Online (Sandbox Code Playgroud)

我在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
Run Code Online (Sandbox Code Playgroud)

请帮忙.

小智 4

尝试:

CREATE "NameUser" django createDB WITH PASSWORD 'MyPass';
Run Code Online (Sandbox Code Playgroud)

请注意 周围的双引号"NameUser"。这是因为 PostgreSQL 中的 SQL 标准标识符大小写折叠。