【问题标题】:Authentication failed django身份验证失败 django
【发布时间】:2022-01-11 02:12:06
【问题描述】:

我收到错误password authentication failed for user "usertodoproject"。真的失去了耐心,到目前为止,我已经完成了几个新数据库并使用了 fpr 示例 ALTER USER todouser WITH PASSWORD 'todo'; 它也没有帮助。有什么想法吗?

*编辑它是 Docker-COMPOSE 故障而不是设置。应用无需 docker 即可运行。

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'todoproject',
        'USER': 'usertodoproject',
        'PASSWORD': 'todoprojectpass',
        'HOST': 'db',
        'PORT': '5432',
    }
}

码头工人撰写

version: "3"

services:
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    ports: 
      - 8000:8000
    volumes:
      - .:/code
    depends_on:
      - db
    restart: always
  db:
    image: postgres
    environment:
    - POSTGRES_DB=todoproject
    - POSTGRES_USER=usertodoproject
    - POSTGRES_PASSWORD=todoprojectpass
    ports:
    - 5432:5432

【问题讨论】:

  • 确保您的数据库的postgresql.confpg_hba.conf 都是您尝试建立的连接类型,allow
  • 要回答的问题 1) 您如何访问数据库以执行ALTER USER ...? 2) 看起来您在 Docker 容器中运行 Postgres,对吗? 3) Django 应用程序相对于 Docker 容器在哪里? 4) Postgres 和 psycopg2 的版本是什么?添加答案以更新您的问题。
  • 我编辑了,是 docker-compose 的东西
  • @Zegarek,我怀疑它是postgresql.confpg_hba.conf,因为你会得到不同的错误:1)Is the server running on that host and accepting TCP/IP connections? 之类的东西用于更改listen_addresses 2)对于pg_hba情况类似于FATAL: no pg_hba.conf entry ...
  • 正如我所说,它与 docker-compose 相关,因为没有 docker 应用程序正常运行

标签: python django postgresql docker


【解决方案1】:

您应该验证一些超出 Python 编程范围的点:

  • postgresql 的状态,是否使用systemctl status postgresql 命令运行
  • 使用netstat -plantu命令验证监听端口5432(db是主机?)
  • 是否创建了用户 usertodoproject ?

【讨论】:

  • 除了那些已经被错误信息回答为“是”的人。如果服务器不在端口 5432 上运行,您将不会收到此消息。与用户名相同,您会得到类似role "<some_role>" does not exist 的信息。所以基本上这是一个非答案。请更新到有用的内容或将其删除。
猜你喜欢
  • 2016-05-09
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
  • 2014-01-24
  • 2017-11-27
  • 1970-01-01
相关资源
最近更新 更多