Django:用户对等身份验证失败
Django: Peer authentication failed for user
我已经有一个使用 sqlite3 的正常运行的网站,但我更喜欢用一个立即使用 PostgreSQL/PostGIS 的空项目重新启动我的网站项目。在 settings.py
配置结束时,我将转储以将所有 sqlite3 表上传到新数据库中。旧项目的任何模型都不会修改到这个新项目中。新旧项目的区别仅在于DBMS。
这是settings.py:
INSTALLED_APPS = [
...
'django.contrib.gis',
]
...
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'my_project_name',
'USER': 'db_user',
'PASSWORD': 'password_of_db_user',
}
}
在此之后,我尝试使用 python3 manage.py runserver
测试服务器,但我看到此错误消息:
django.db.utils.OperationalError: FATAL: Peer authentication failed
for user "db_user"
我确定 NAME、USER 和 PASSWORD 是正确的,数据库在本地主机中。几周前,我创建了另一个简单的项目来学习 GeoDjango 使用相同的设置和那个网站 运行 很好。
您的配置中似乎缺少 host
字段:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'my_project_name',
'USER': 'db_user',
'PASSWORD': 'password_of_db_user',
'HOST': 'localhost' # missing part
}
}
我已经有一个使用 sqlite3 的正常运行的网站,但我更喜欢用一个立即使用 PostgreSQL/PostGIS 的空项目重新启动我的网站项目。在 settings.py
配置结束时,我将转储以将所有 sqlite3 表上传到新数据库中。旧项目的任何模型都不会修改到这个新项目中。新旧项目的区别仅在于DBMS。
这是settings.py:
INSTALLED_APPS = [
...
'django.contrib.gis',
]
...
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'my_project_name',
'USER': 'db_user',
'PASSWORD': 'password_of_db_user',
}
}
在此之后,我尝试使用 python3 manage.py runserver
测试服务器,但我看到此错误消息:
django.db.utils.OperationalError: FATAL: Peer authentication failed for user "db_user"
我确定 NAME、USER 和 PASSWORD 是正确的,数据库在本地主机中。几周前,我创建了另一个简单的项目来学习 GeoDjango 使用相同的设置和那个网站 运行 很好。
您的配置中似乎缺少 host
字段:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'my_project_name',
'USER': 'db_user',
'PASSWORD': 'password_of_db_user',
'HOST': 'localhost' # missing part
}
}