postgresql - 从 Windows 10 主机连接 WSL2 Ubuntu 中安装的 PostgreSQL 时遇到问题

标签 postgresql wsl-2

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

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

  • 为 postgres 用户设置密码。
  • 在 pg_hpa.conf 中设置以下内容
    local all postgres md5host all all 0.0.0.0/0 md5
  • 在 postgresql.conf 中设置以下内容
    listen_addresses = '*'
  • 测试成功,可以连接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 内部建立时,由于某种原因身份验证失败。

    最佳答案

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

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

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

    关于postgresql - 从 Windows 10 主机连接 WSL2 Ubuntu 中安装的 PostgreSQL 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62320407/

    相关文章:

    postgresql - 从 WSL 2 连接到现有的 Postgresql 实例

    git - 如何在 WSL2 上将 Meld 用作 git mergetool 和 difftool?

    windows - Windows 上的 Postgresql WAL

    arrays - 将嵌套的 JSONB 数组连接成单个字符串

    docker - 如何在 VsCode 的 docker 中调试我的 Startup.cs(调试器附加得太晚了)

    linux - PostgreSQL 10 从/etc 读取 postgresql.conf,但在/var 中指定数据目录

    javascript - 如何从 SQLview 接收坐标?开放层 3

    django - 在 Django CharFields 中自动截断 max_length 字段

    python - MacOS卡特琳娜: Symbol not found: _PQsslAttribute

    ubuntu - WSL2(Ubuntu 20.04)上的 Miniconda 失败并出现 CondaHTTPError : HTTP 000 CONNECTION FAILED