繁体   English   中英

使用 Mongo Compass 访问 WSL2 中 docker 上运行的 mongo 数据库

[英]Access mongo database running on docker in WSL2 using Mongo Compass

我正在开发一个使用在 docker 上运行的 mongo 数据库的项目。

当我在 windows 10 上运行项目时,我可以使用标准连接字符串通过 Mongo Compass 完美连接到我的数据库: mongodb://localhost:27017/?readPreference=primary&appname=MongoDB%20Compass&ssl=false

但是,在 WSL2 上运行完全相同的配置使得无法通过 Mongo Compass 连接到数据库。 但是,数据库按预期运行,应用程序运行良好 - 只是 Mongo Compass <> WSL2 连接不工作。 为了连接我的 WSL2 数据库,我尝试了这两个连接字符串:

  • mongodb://localhost:27017/?readPreference=primary&appname=MongoDB%20Compass&ssl=false
  • mongodb://0.0.0.1:27017/?readPreference=primary&appname=MongoDB%20Compass&ssl=false

对于这两种情况,Mongo Compass 将显示在 Windows 10 上运行的 DB,而不是在 WSL2 上运行。 使用 Windows 10 mongo shell 也没有列出我的 WSL2 数据库。

此外,我在 WSL2 上运行的 docker 容器似乎绑定了正确的端口: 0.0.0.0:27017->27017/tcp

任何想法将不胜感激。

问题不是 mongo 指南针,而是 localhost。 即使在今天,wsl2 localhost 和 windows localhost 也没有连接,我找不到简单的连接方法。 我使用来自wsl2的mongo gui的唯一方法(我使用robo3t,但它应该是相同的),是像往常一样使用连接字符串实际连接到一个真正的在线集群。 这个解决方案适用于某些人,但不适合我。 我希望微软尽快解决这个问题。

编辑:在 2021 年 4 月对 wsl2 的更新中,他们添加了对 gui 应用程序的(蹩脚,但以某种方式工作)支持,因此您可以直接从 wsl 运行 robo3t,并使用 localhost。 但仍然非常麻烦,每 1 分钟左右关闭一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM