从 Windows 10 主机连接 WSL2 Ubuntu 中安装的 PostgreSQL 时出现问题

Mar*_*ang 6 postgresql wsl-2

我在从 Windows 10 主机连接到安装在 WSL2 Ubuntu 中的 PostgreSQL 时遇到了很大的麻烦。

这是我到目前为止所做的。

  1. 设置 postgres 用户的密码。
  2. 在 pg_hpa.conf 中设置以下内容

    local all postgres md5

    host all all 0.0.0.0/0 md5

  3. 在 postgresql.conf 中设置以下内容

    listen_addresses = '*'

  4. 测试成功,我可以连接psql -U postgres- 所以密码应该设置正确。

当我尝试从 Windows 10 主机使用 pgAdmin 或 psql 进行连接时,出现以下错误。

error: could not connect to server: FATAL: password authentication failed for user "postgres"

我还可以在 pg_hpa.conf 或其他可能有帮助的 PostgreSQL 配置中更改其他内容吗?

我想我可能与 WSL2 有自己的 IP 有关,即使来自主机的连接看起来来自本地主机。连接似乎已建立,但当不是从 Ubuntu 内部建立时,身份验证会由于某种原因失败。

Mar*_*ang 3

我后来进行了测试nc -l 5432,由于某种原因,端口 5432 没有到达本地主机上的 WSL2,但在 WSL-2 IP 上却到达了。如果我使用任何其他免费端口,例如 5434(Windows 和 WSL-2 上都是免费的),它工作正常,我可以通过 Windows 上的 localhost 连接到 WSl-2 上的 PostgreSQL 服务。

自最初发布问题以来,我没有更改任何选项 - 仅更改端口。

更新:事实证明,Windows 上旧安装的 postgres 确实有一个进程正在监听端口 5432。这自然就解释了这一切。..:/

  • 那么,实际上解决这个问题的方法是什么? (2认同)