技术饭
WSL2使用PHP访问Windows 11上的MongoDB报错:Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException: [connection refused calling hello on 'localhost:27017']
WSL2使用PHP访问Windows 11上的MongoDB报错:Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException: No suitable servers found (`serverSelectionTryOnce` set): [connection refused calling hello on 'localhost:27017']
由于mongodb没有安装在wsl环境里,安装在外部的环境中,本地可以直接连接Mongodb,但是通过wsl的php执行却无法连接到Mongodb,经排查需要解决几点问题:
1、防火墙需要运行wsl2
关闭防火墙、或者是给防火墙添加wsl2的入站允许,给WSL2解除防火墙限制
2、mongodb配置文件设置bindIp=0.0.0.0
安装目录下的配置文件:C:\Program Files\MongoDB\Server\6.0\bin\mongod.cfg
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
重启mongodb服务:net stop mongodb、net start mongodb
查看进程:netstat -an | findstr "27017"
看是否生效:TCP 0.0.0.0:27017 0.0.0.0:0 LISTENING
3、设置wsl中对应host访问
查看ip:cat /etc/resolv.conf
nameserver 172.27.16.1
配置hosts:vim /etc/hosts
172.27.16.1 ycp-mongodb.com
至此可以通过:mongodb://ycp-mongodb.com:27017 或者 mongodb://172.27.16.1:27017 访问本地的mongodb
参考:https://blog.csdn.net/qq_15969343/article/details/129074456
文明上网理性发言!