我希望能够将本地安装的 MongoDB Compass 应用程序(安装在 Windows 10 上)连接到安装在 WSL2 中的 MongoDB 服务器(MongoDB 没有本地 Windows 安装)。但是,由于操作系统和 WSL2 对 localhost
的看法不同,它们可能无法连接目前能够:
sudo service mongodb start
等MongoDB服务命令这是我在WSL2中输入
mongosh
时输出的连接字符串:
mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.8.2
打开 MongoDB Compass 时,URI 默认为
mongodb://localhost:27017
。连接后,它不会显示与 WSL2 相同的数据库,只有 3 个默认的 admin、config 和 *local * 数据库,我确定它们无论如何都是不同的(没有出现“myNewDB”在 WSL2 中创建的数据库)。所以很明显这些不是相同的服务器,尽管它们都显示为 localhost
我试过的:
wsl --shutdown
重新启动 WSL2 并在 Windows 上禁用快速启动,但它没有解决问题。cat /etc/resolv.conf
来获取主机的 IP 地址(它与通常的 127.0.0.1 不同),然后通过 WSL2 连接到它 mongosh mongodb://[IP_I_found]:27017
但服务器选择超时。ipconfig
-> 获取 IPv4 地址 192.168.2.13 -> 在 WSL2 上键入 mongosh mongodb://192.168.2.13:27017
但超时。编辑: 有点为我的特定用例找到了解决方法。归根结底,我只需要某种 GUI 来查看数据库。我使用 VScode 进行编辑。它有一个 MongoDB 扩展,我添加到 VSCode 的WSL2 实例(不是本地 VSCode)上,它连接到我安装在 WSL2 中的 MongoDB 服务器。通过扩展,我能够直接在 IDE 上直观地看到数据库。也就是说,原来使用 WSL2 Compass 连接到 Windows 本地 Compass 的问题仍然普遍存在。