在Springboot使用MongoDb时,问题如标题,如图:

首先,查出的问题是使用了VPN,于是根据其他博主的解决方法在VM Options中添加了:-Djava.net.preferIPv4Stack=true,但是仍然出现该问题;

于是为了检查配置没有问题,创建了一个测试程序进行连接,结果连上了

那么肯定就和SpringBoot有关,估计SpringBoot创建bean对象连接MongoDb时出现了问题,去了解了一下SpringBoot run方法运行流程,知道创建Bean对象的过程是在刷新上下文即refreshContext方法中,往下Debug,在哪抛出异常就进入哪个方法,打上断点,最后在SocketStream类中的open方法

发现连接的地址不对,连接的居然是本地的地址:localhost:27017,这时就知道时配置没有生效,使用的是Springboot默认的MongoDb配置,然后去看配置,果然@Profile注解,而自己是直接用的默认的yml文件,更改一下环境就行

最后加个点:MongoDb用户名和密码中不能有@,要用相应十六进制代替:%40

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐