技术饭

WSL2使用PHP访问Windows 11上的MongoDB报错:Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException: [connection refused calling hello on 'localhost:27017']

copylian    0 评论    15763 浏览    2023.05.28

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

只袄早~~~
感谢你的支持,我会继续努力!
扫码打赏,感谢您的支持!

文明上网理性发言!

  • 还没有评论,沙发等你来抢