MongoDB Compass 与 WSL2 的问题

Spa*_*ind 5 windows mongodb windows-subsystem-for-linux wsl-2

我在 WSL2 内的容器内运行了一个 MongoDB 实例。

当我尝试在浏览器中执行请求时,localhost:27017即使它显示错误,它也会工作,因为我尝试使用 HTTP 协议访问数据库。

但是,当我尝试使用主机名 localhost 和端口 27017 从 Compass 访问我的数据库时,我在 30000 毫秒后超时,并且无法访问它。

有人知道为什么吗?

Den*_*kiy 3

我只能使用 WSL2 IP 地址连接 mongoDB 实例。

您可以通过在 WSL 中运行以下命令来获取它:

ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | cut -d/ -f1
Run Code Online (Sandbox Code Playgroud)

或者 Windows 主机上的 powershell 中的这个:

[Regex]::Match((wsl -- ip addr show eth0), 'inet (?<IP>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\/').Groups["IP"].Value
Run Code Online (Sandbox Code Playgroud)

坏消息:每次 WSL2 重新启动时,此 IP 都会发生变化。有一个go-wsl2-host为该 IP 添加主机并保持更新。但我从来没有用过它。