首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到PostgreSQL: Postico和TablePlus DB GUI无法连接,但在Docker中“`psql`”(致命:用户密码身份验证失败)

连接到PostgreSQL: Postico和TablePlus DB GUI无法连接,但在Docker中“`psql`”(致命:用户密码身份验证失败)
EN

Stack Overflow用户
提问于 2019-03-18 16:05:51
回答 1查看 1.9K关注 0票数 0

我已经在本地使用Docker部署了我的PostgreSQL数据库。这是我的码头撰写文件:

代码语言:javascript
复制
version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.30-alpha
    restart: always
    ports:
    - "4466:4466"
    environment:
      PRISMA_CONFIG: |
        port: 4466
        # uncomment the next line and provide the env var PRISMA_MANAGEMENT_API_SECRET=my-secret to activate cluster security
        # managementApiSecret: my-secret
        prototype: true
        databases:
          default:
            connector: postgres
            host: postgres
            user: prisma
            password: prisma
            port: 5432
  postgres:
    image: postgres
    restart: always
    environment:
      POSTGRES_USER: prisma
      POSTGRES_PASSWORD: prisma
    volumes:
      - postgres:/var/lib/postgresql/data
volumes:
  postgres:

我是从docker-compose up -d开始的。

码头集装箱正在运行:

代码语言:javascript
复制
CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS              PORTS                    NAMES
26b14120f89f        prismagraphql/prisma:1.30-alpha   "/bin/sh -c /app/sta…"   17 minutes ago      Up 17 minutes       0.0.0.0:4466->4466/tcp   newdm1_prisma_1
05dfdaeaf609        postgres                          "docker-entrypoint.s…"   17 minutes ago      Up 17 minutes       5432/tcp                 newdm1_postgres_1

现在,由于某种原因,无法使用数据库GUI进行连接(尝试了Postico和TablePlus)。在这两个客户端中,我都会得到以下错误:

致命:用户"prisma“的密码验证失败

我100%肯定我提供了prisma作为在Docker文件中指定的密码。

此外,当我使用psqlpostgres Docker容器内连接到数据库时,它确实工作:

代码语言:javascript
复制
docker exec -it 05dfdaeaf609 bash

然后,在码头集装箱内,我这样做:

代码语言:javascript
复制
root@05dfdaeaf609:/# psql -U prisma -W prisma
Password: 
psql (11.1 (Debian 11.1-1.pgdg90+1))
Type "help" for help.

prisma=# \l
                              List of databases
   Name    | Owner  | Encoding |  Collate   |   Ctype    | Access privileges 
-----------+--------+----------+------------+------------+-------------------
 postgres  | prisma | UTF8     | en_US.utf8 | en_US.utf8 | 
 prisma    | prisma | UTF8     | en_US.utf8 | en_US.utf8 | 
 template0 | prisma | UTF8     | en_US.utf8 | en_US.utf8 | =c/prisma        +
           |        |          |            |            | prisma=CTc/prisma
 template1 | prisma | UTF8     | en_US.utf8 | en_US.utf8 | =c/prisma        +
           |        |          |            |            | prisma=CTc/prisma
(4 rows)

prisma=# \c prisma
Password for user prisma: 
You are now connected to database "prisma" as user "prisma".

我在psql中提供的密码是prisma,类似于我在Postico和TablePlus中提供的密码。

在连接到Docker容器中的PostgreSQL DB时,我需要做什么特殊的事情吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-18 16:16:49

代码语言:javascript
复制
PORTS
0.0.0.0:4466->4466/tcp
5432/tcp

如果您检查docker ps命令的端口列,就会发现Postgres端口没有公开供主机使用。

要解决这个问题,需要将以下内容添加到docker-compose.yml文件中:

代码语言:javascript
复制
ports:
  - "5432:5432"

使完整的文件看起来如下:

代码语言:javascript
复制
version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.30-alpha
    restart: always
    ports:
    - "4466:4466"
    environment:
      PRISMA_CONFIG: |
        port: 4466
        # uncomment the next line and provide the env var PRISMA_MANAGEMENT_API_SECRET=my-secret to activate cluster security
        # managementApiSecret: my-secret
        prototype: true
        databases:
          default:
            connector: postgres
            host: postgres
            user: prisma
            password: prisma
            port: 5432
  postgres:
    image: postgres
    restart: always
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: prisma
      POSTGRES_PASSWORD: prisma
    volumes:
      - postgres:/var/lib/postgresql/data
volumes:
  postgres:

然后需要运行docker-compose up -d来应用新的更改。当设置正确时,docker psdocker ps列应该如下所示

代码语言:javascript
复制
PORTS
0.0.0.0:4466->4466/tcp
0.0.0.0:5432->5432/tcp
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55225513

复制
相关文章

相似问题

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