将 Spring Boot 连接到 MongoLab 的 MongoDB 版本 3.0.7 时出现问题

Posted

技术标签:

【中文标题】将 Spring Boot 连接到 MongoLab 的 MongoDB 版本 3.0.7 时出现问题【英文标题】:Problems connecting Spring Boot to MongoLab's MongoDB version 3.0.7 【发布时间】:2016-02-11 18:06:45 【问题描述】:

我们在将 Spring Boot 服务器连接到 MongoLab 的 3.0.7 版本数据库时遇到问题。该代码使用本地 Mongo 3.0 实例运行良好,但在连接到 MongoLab 的服务器时失败。

原因:com.mongodb.MongoCommandException:命令失败 错误 18:服务器 myserver.com:99999 上的“身份验证失败”。完整的 响应是 "ok" : 0.0, "errmsg" : "auth failed", "code" : 18

我们正在使用 Spring Boot 1.2.6.RELEASEMongoDB 驱动程序 3.0.4 我们还尝试了 driver 2.15.5

两者都无法连接。

感谢任何帮助。

【问题讨论】:

您可以尝试将“&authMechanism=SCRAM-SHA-1”添加到连接字符串/uri 的末尾吗? 这不起作用:异常验证 MongoCredentialmechanism=SCRAM-SHA-1, userName='test', source='test', password=,mechanismProperties= 命令失败,出现错误 18:“身份验证失败。”在服务器 myserver:99999 上。完整的响应是 "ok" : 0.0, "code" : 18, "errmsg" : "Authentication failed." 我的错 - 这确实解决了问题。谢谢你。我将其添加为答案。 【参考方案1】:

正如 pneumee 在上面的评论中所建议的,解决方案是将"&authMechanism=SCRAM-SHA-1" 添加到连接字符串/uri 的末尾。

【讨论】:

以上是关于将 Spring Boot 连接到 MongoLab 的 MongoDB 版本 3.0.7 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

无法将 spring-boot 2 服务连接到不同容器中的 mysql

如何将 AWS Elasticache Redis 集群连接到 Spring Boot 应用程序?

无法将 Spring Boot 应用程序连接到 IBM Informix 数据库

如何将 Spring Boot JAR 连接到远程 Oracle 数据库?

使用 JPA/Hibernate 将 Spring Boot 连接到 PostgreSql 数据库时失败

如何将我的 Spring Boot 应用程序连接到 Docker 上的 Redis 容器?