【问题标题】:Django: Peer authentication failed for userDjango:用户的对等身份验证失败
【发布时间】:2019-12-14 19:58:20
【问题描述】:

我已经有一个使用 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 对于用户“db_user”

我确定 NAMEUSERPASSWORD 是正确的,数据库在 localhost 中。几周前,我创建了另一个简单的项目,以使用相同的设置学习 GeoDjango,并且该网站运行良好。

【问题讨论】:

  • 您在更改配置后是否创建了新的 postgres 数据库?
  • 是的,我已经使用命令行和 PgAdmin4 来执行此操作。在我的本地服务器中有三个数据库:这个数据库、默认数据库和我正在学习 GeoDjango 的数据库。

标签: django postgresql django-settings django-2.2


【解决方案1】:

您的配置中似乎缺少 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
    }
}

【讨论】:

    猜你喜欢
    • 2016-09-08
    • 2020-11-30
    • 2016-03-01
    • 2011-12-31
    • 2022-01-11
    • 2013-07-23
    • 2013-06-30
    • 2017-07-25
    • 2013-02-24
    相关资源
    最近更新 更多