簡體   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