无法查找主机 Cluster0-XXXXX.mongodb.net 的 TXT 记录


spring.data.mongodb.uri=mongodb+srv://XXXXXX:XXXXXXXXXXX@luster0-XXXXX.mongodb.net/test?retryWrites=true&w=majority
spring.data.mongodb.database=test

上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependency异常:创建名为"mongoBootApplication"的 bean 时出错:通过字段"repository"表示的不满足依赖关系;嵌套异常是 org.springframework.beans.factory.BeanCreation异常:创建名为"userRepository"的 bean 时出错:设置 bean 属性 'mongoOperations' 时,无法解析对 bean 'mongoTemplate' 的引用;嵌套的异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:创建在类路径资源 [org/springframework/boot/autoconfigure/data/mongo/MongoDbFactoryDependentConfiguration.class] 中定义名称为"mongoTemplate"的 bean 时出错:通过方法 'mongoTemplate' 参数 0 表示的未满足依赖项;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建类路径资源 [org/springframework/boot/autoconfigure/data/mongo/MongoDbFactoryConfiguration.class] 中定义的名称为"mongoDbFactory"的 bean 时出错:通过工厂方法实例化 Bean 失败;嵌套异常是 org.springframework.beans.BeanInstantiationException: 未能实例化 [org.springframework.data.mongodb.core.MongoDbFactorySupport]:工厂方法 'mongoDbFactory' 抛出异常;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建在类路径资源 [org/springframework/boot/autoconfigure/mongo/mongo/MongoAutoConfiguration.class] 中定义名称为"mongo"的 bean 时出错:通过工厂方法实例化 Bean 失败;嵌套异常是 org.springframework.beans.BeanInstantiationException: 未能实例化 [com.mongodb.MongoClient]:工厂方法 'mongo' 抛出异常;嵌套异常是 com.mongodb.MongoConfigurationException:无法查找主机 Cluster0-XXXXX.mongodb.net 的 TXT 记录

我遇到了同样的问题,没有找到任何相关的答案。我自己解决了。这是您的端口 27017 被防火墙阻止的问题。您需要在防火墙中打开此端口的出站和入站。

适用于窗口的步骤:

  • 转到防火墙
  • 高级设置
  • 入站规则
  • 使用"操作"选项卡下的"新建规则"创建新规则
  • 选择端口
  • 选择 TCP 并指定端口号 (27015,27016,27017(
  • 允许连接
  • 单击下一步
  • 为新规则完成添加名称

对出站规则执行相同的步骤。 完成后,重新启动系统。

如果您仍在寻找答案:

此问题是因为某些 ISP 阻止了连接字符串。将默认 DNS 服务器与此类 ISP 一起使用时,将发生此错误。

一个简单的测试,以确定ISP是否是问题所在,请尝试切换到其他网络,看看它是否仍然存在。

如果幸运地切换到不会阻止连接字符串的 ISP,那么您将连接到群集。如果没有,您可以尝试将 DNS 配置更改为使用公共 DNS 服务器。

供参考: https://developers.google.com//speed/public-dns/docs/using

对我来说,由于长时间不活动,MongoDB团队暂停了集群。恢复后,它起作用了。要恢复,请转到MongoDB Atlas集群仪表板,查看状态并单击恢复集群按钮。

你的 uri 是:mongodb+srv://XXXXXX:XXXXXXXXXXX@luster0-XXXXX.mongodb.net/test?retryWrites=true&w=majority

在创建Connection期间,会解析 URI 的某些部分。尝试删除?retryWrites=true&w=majority部分并检查 TXT 解析是否固定。也许您的 TXT 解析器无法识别这些选项。

最新更新