我在我的 Azure 订阅中创建了一个 Cosmos DB(使用 Mongo API)。
现在尝试使用我现有的代码连接到 CosmosDB 以连接到 mongo DB。我只是更改代码以创建 mongo 客户端。
我使用从 Cosmos DB -> 连接字符串获得的连接字符串创建了 Mongo 客户端。
微软提供的试用版Cosmos DB同样适用。 它可以从 https://azure.microsoft.com/en-us/try/cosmosdb 创建.
但它不适用于我在订阅中创建的 Cosmos DB。
我得到以下错误:
com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=null, userName='[myusername]', source='admin', password=<hidden>, mechanismProperties={}}
at com.mongodb.connection.SaslAuthenticator.wrapInMongoSecurityException(SaslAuthenticator.java:157) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.SaslAuthenticator.access$200(SaslAuthenticator.java:37) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:66) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:44) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.SaslAuthenticator.doAsSubject(SaslAuthenticator.java:162) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.SaslAuthenticator.authenticate(SaslAuthenticator.java:44) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.DefaultAuthenticator.authenticate(DefaultAuthenticator.java:32) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.InternalStreamConnectionInitializer.authenticateAll(InternalStreamConnectionInitializer.java:109) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:46) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:116) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:113) [mongo-java-driver-3.4.2.jar:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_171]
Caused by: com.mongodb.MongoCommandException: Command failed with error 11: 'Database account is not found' on server [my cosmosdb name].documents.azure.com:10255. The full response is { "_t" : "OKMongoResponse", "ok" : 0, "code" : 11, "errmsg" : "Database account is not found", "$err" : "Database account is not found" }
at com.mongodb.connection.CommandHelper.createCommandFailureException(CommandHelper.java:170) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.CommandHelper.receiveCommandResult(CommandHelper.java:123) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:32) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.SaslAuthenticator.sendSaslContinue(SaslAuthenticator.java:121) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.SaslAuthenticator.access$100(SaslAuthenticator.java:37) ~[mongo-java-driver-3.4.2.jar:?]
at com.mongodb.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:63) ~[mongo-java-driver-3.4.2.jar:?]
... 9 more
我的 Azure 门户上是否缺少任何配置???
最佳答案
您可以禁用防火墙,但这会让您暴露在外。更好地启用对工作站的访问:
- 转到名为防火墙和虚拟网络的 Azure Cosmos DB 菜单。
选择选定的网络
点击建议的选项+ 添加我当前的 IP (xx.xx.xx.xx) 这基本上会自动将您工作站的 Internet IP 添加到您的 MongoDB/CosmosDB 允许的客户端 IP .
转到名为快速启动 的 Azure Cosmos DB 菜单。在那里,您将获得连接到数据库的替代方案。
关于mongodb - Cosmos DB 错误 : com. mongodb.MongoCommandException:命令失败,错误 11: 'Database account is not found',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51418709/