从PhpStorm连接到Docker PostgreSQL时,密码验证失败

yshpjwxd  于 2022-11-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(168)

问题是

我尝试从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中输入以下内容:

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

我在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数据库正确?

fwzugrvs

fwzugrvs1#

在我的例子中,我运行的是带有WSL2(Ubuntu)的Windows 10。我在Ubuntu示例中安装了Postgres,作为设置应用程序的一部分。我删除了应用程序,但Postgres服务器仍在运行。当我试图使用localhost:5432连接到Docker Postgres示例时,我连接到的是WSL2 Postgres示例。
在我的例子中,因为我不再在WSL2中使用Postgres,所以我删除了它,这样就解决了这个问题。

相关问题