首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误asyncpg.exceptions.InvalidPasswordError:用户"steamtrader_pguser“密码身份验证失败

错误asyncpg.exceptions.InvalidPasswordError:用户"steamtrader_pguser“密码身份验证失败
EN

Stack Overflow用户
提问于 2021-08-12 08:16:50
回答 1查看 1K关注 0票数 1

我正在试图运行Telegram bot上的爱国者Python与PostgreSQL数据库在Ubuntu20.04服务器在码头使用码头-组合。脚本运行,但我得到

代码语言:javascript
运行
复制
asyncpg.exceptions.InvalidPasswordError: password authentication failed for user "steamtrader_pguser"

这是我的docker-compose.yml文件:

代码语言:javascript
运行
复制
version: "3.1"

services:
  steamtraderpurchases_db:
    container_name: steamtraderpurchases_db
    image: sameersbn/postgresql:10-2
    environment:
      PG_PASSWORD: $PGPASSWORD
    restart: always
    ports:
      - 5432:5432
    networks:
      - steamtraderpurchases_botnet
    volumes:
      - ./pgdata:/var/lib/postgresql

  steamtraderpurchases_bot:
    container_name: steamtraderpurchases
    build:
      context: .
    command: python app.py
    restart: always
    networks:
      - steamtraderpurchases_botnet
    env_file:
      - ".env"
    volumes:
      - .:/src
    depends_on:
      - steamtraderpurchases_db
    ports:
      - 8443:3001


networks:
  steamtraderpurchases_botnet:
    driver: bridge

以下是Dockerfile:

代码语言:javascript
运行
复制
FROM python:3.9.5

WORKDIR /src
COPY requirements.txt /src
RUN pip install -r requirements.txt
COPY . /src

在.env文件中,我指定了:

代码语言:javascript
运行
复制
DATABASE=steamtrader
PGUSER=steamtrader_pguser
PGPASSWORD=password
DB_HOST=steamtraderpurchases_db
IP=*ip of my server*

剩下的代码是一个电报机器人。此外,我使用SQLAlchemy和Gino创建了一个包含所需字段的数据库。这是我第一次尝试在服务器上运行机器人,所以我将非常感谢您的帮助!

UPD:我在运行docker时在日志中找到了这些行:

代码语言:javascript
运行
复制
FATAL: password authentication failed for user "steamtrader_pguser"
DETAIL:  Role "steamtrader_pguser" does not exist.

我试着创造一个角色,但什么也没成功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-12 08:29:57

请看sameersbn/postgresql文档

默认情况下,没有为postgres用户分配密码,因此只能在本地登录到PostgreSQL服务器。如果希望以postgres用户的身份远程登录到PostgreSQL服务器,则需要使用PG_PASSWORD变量为用户分配密码。

上面的意思是PG_PASSWORD的相应用户是postgres,而不是steamtrader_pguser。要添加一个新的用户steamtrader_pguser,您必须遵循下面的步骤:

在启动容器时,可以通过指定PostgreSQL和DB_PASS变量来创建新的DB_PASS数据库用户。 docker -名称postgresql -itd --始终重新启动\-env 'DB_USER=dbuser‘--env 'DB_PASS=dbuserpass’\ sameersbn/postgresql:12-20200524

上面的意思是,您需要在DB_USERDB_PASS中设置docker-compose.yamlenvironment部分。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68753873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档