【发布时间】:2017-05-09 19:16:02
【问题描述】:
我目前正在使用本地数据库。使用终端访问mongodb。
这些是我拥有的所有凭据。在我的应用程序属性中,当我提供以下数据时,我能够检索和存储数据。
spring.data.mongodb.database=myNewDB
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
我正在尝试使用 Cloud Foundry CUPS 将 mongodb 与 URI 连接。 但是按照 URI 指南,我缺少用户名和密码。我在哪里可以找到这些值?我所有的数据目前都存储在本地,不希望使用 Cloud Foundry 提供的 MongoDB,因为我必须再次手动输入这些数据。
DB-TYPE://USERNAME:PASSWORD@HOSTNAME:PORT/NAME
mongo://don't:know@localhost:27017/myNewDB
尝试
在 mongo shell 中,我执行以下操作来创建管理员。
use admin
db.createUser(
{
user: "appAdmin",
pwd: "password",
roles:
[
{ role: "readWrite", db: "myNewDB" },
"clusterAdmin"
]
}
)
在此之后,我将以下内容添加到我的 application.properties 中
spring.data.mongodb.username=appAdmin
spring.data.mongodb.password=password
当我运行我的应用程序时,我收到以下错误:
com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=null, userName='appAdmin', source='myNewDB', password=<hidden>, mechanismProperties={}}
at com.mongodb.connection.SaslAuthenticator.authenticate(SaslAuthenticator.java:61) ~[mongo-java-driver-3.2.2.jar:na]
at com.mongodb.connection.DefaultAuthenticator.authenticate(DefaultAuthenticator.java:32) ~[mongo-java-driver-3.2.2.jar:na]
at com.mongodb.connection.InternalStreamConnectionInitializer.authenticateAll(InternalStreamConnectionInitializer.java:99) ~[mongo-java-driver-3.2.2.jar:na]
at com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:44) ~[mongo-java-driver-3.2.2.jar:na]
at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115) ~[mongo-java-driver-3.2.2.jar:na]
at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:128) ~[mongo-java-driver-3.2.2.jar:na]
at java.lang.Thread.run(Unknown Source) [na:1.8.0_121]
Caused by: com.mongodb.MongoCommandException: Command failed with error 18: 'Authentication failed.' on server localhost:27017. The full response is { "ok" : 0.0, "code" : 18, "errmsg" : "Authentication failed." }
at com.mongodb.connection.CommandHelper.createCommandFailureException(CommandHelper.java:170) ~[mongo-java-driver-3.2.2.jar:na]
at com.mongodb.connection.CommandHelper.receiveCommandResult(CommandHelper.java:123) ~[mongo-java-driver-3.2.2.jar:na]
at com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:32) ~[mongo-java-driver-3.2.2.jar:na]
at com.mongodb.connection.SaslAuthenticator.sendSaslStart(SaslAuthenticator.java:95) ~[mongo-java-driver-3.2.2.jar:na]
at com.mongodb.connection.SaslAuthenticator.authenticate(SaslAuthenticator.java:45) ~[mongo-java-driver-3.2.2.jar:na]
... 6 common frames omitted
但是当我从我的 application.properties 文件中删除用户名和密码时。我的应用程序将按预期运行。
【问题讨论】:
标签: mongodb uri cloud-foundry