繁体   English   中英

从 PhpStorm 连接到 docker PostgreSQL 给出密码验证失败

[英]Connecting to docker PostgreSQL from PhpStorm gives password authentication failed

问题

我正在尝试从 PhpStorm 连接到 PostgreSQL,但它返回以下错误:

[28P01] FATAL: password authentication failed for user "app"

情况

我有以下.env文件设置:

POSTGRES_DB=app
POSTGRES_USER=app
POSTGRES_PASSWORD=password
POSTGRES_VERSION=15

以及docker-compose.yml中的以下内容:

version: '3'

services:
  database:
    image: postgres:${POSTGRES_VERSION}-alpine
    container_name: database
    env_file:
      - .env
    volumes:
      - db-data:/var/lib/postgresql/data:rw
    ports:
      - '5432'

volumes:
  db-data:

运行docker-compose up -d时确实成功创建了容器和卷。

然后我在我的 PhpStorm 中输入以下内容: PhpStorm 数据库配置

但是随后弹出错误,再次输入密码并不能解决任何问题。 PhpStorm 错误弹出窗口

我在 Ubuntu 22.04.1 LTS 上运行

我试过的

我已经用不同的用户和密码组合多次重建容器(确保使用docker-compose down -v来删除音量),所有结果都相同。

我尝试通过执行docker exec -it database psql -U app然后运行ALTER ROLE app WITH PASSWORD 'password'更改密码,但这并没有改变任何东西。

我还在网上看到它可能必须对设置为 ident 的用户进行身份验证,但我找不到在docker-compose.yml文件中更改此设置的方法。

问题

我该如何设置才能将我的 PhpStorm 正确连接到 PostgreSQL 数据库?

就我而言,我使用 WSL2 (Ubuntu) 运行 Windows 10。 作为设置应用程序的一部分,我在 Ubuntu 实例中安装了 Postgres。 我已经删除了该应用程序,但 Postgres 服务器仍在运行。 当我尝试使用localhost:5432连接到 Docker Postgres 实例时,我改为连接到 WSL2 Postgres 实例。

就我而言,因为我不再在 WSL2 中使用 Postgres,所以我删除了它,这解决了问题。 您也可以停止它或使用@jjanes 提到的主机名/IP

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM