如何用Windows本地MongoDB Compass连接WSL2中的MongoDB Server
解决Windows 10本地MongoDB Compass连接WSL2中MongoDB Server的问题
问题背景
Windows 10本地安装的MongoDB Compass无法连接WSL2(Ubuntu 18.04)中部署的MongoDB 6.0.5服务,使用默认mongodb://localhost:27017连接时仅显示默认系统库,无法看到WSL2中创建的myNewDB数据库。
环境信息
- Linux发行版:Ubuntu 18.04
- MongoDB版本:6.0.5
- Mongosh版本:1.8.2
当前可正常操作
- 在WSL2中通过
sudo service mongodb start等命令管理MongoDB服务 - 在WSL2的mongosh中成功创建
myNewDB数据库及myNewCollection集合
核心原因
WSL2拥有独立的网络命名空间,其localhost仅指向自身虚拟机内部,而Windows的localhost指向宿主机网络栈。同时默认MongoDB配置仅监听127.0.0.1,拒绝外部(包括Windows宿主机)的连接请求。
解决方案步骤
1. 修改MongoDB绑定配置
在WSL2中编辑MongoDB配置文件:
sudo nano /etc/mongodb.conf
找到bindIp配置项,将其从默认的127.0.0.1修改为0.0.0.0(允许所有网卡监听):
bindIp = 0.0.0.0
保存并退出编辑器(按Ctrl+O,回车确认,再按Ctrl+X)。
2. 重启MongoDB服务
sudo service mongodb restart
3. 获取WSL2的IP地址
在WSL2终端中执行以下命令获取内部IP:
hostname -I
输出结果中第一个IP即为WSL2的专属IP(格式类似172.x.x.x)。
4. 在MongoDB Compass中连接
打开Compass,使用以下URI格式替换为获取到的WSL2 IP:
mongodb://[WSL2_IP]:27017
点击连接后即可看到WSL2中创建的myNewDB数据库。
已尝试无效方案说明
- 重启WSL2并关闭Windows快速启动:无法解决网络命名空间隔离问题
- 使用Windows宿主机IP或
resolv.conf中的IP连接:MongoDB未开放外部监听,导致超时
临时替代方案(已验证可用)
在WSL2实例的VSCode中安装MongoDB扩展,可直接在IDE内可视化查看WSL2中的MongoDB数据。
内容的提问来源于stack exchange,提问作者Safwan Hossain
相关产品推荐
相关产品推荐

