在副本集Mongo Shell中,use products;db.auth('worker'.'a*******6');
没问题,但是在spring-data-mongondb中,我遇到了以下问题:
Exception in thread "main" org.springframework.data.mongodb.CannotGetMongoDbConnectionException: Failed to authenticate to database [products], username = [worker], password = [a*******6]
at org.springframework.data.mongodb.core.ReflectiveDbInvoker.authenticate(ReflectiveDbInvoker.java:83)
at org.springframework.data.mongodb.core.MongoDbUtils.doGetDB(MongoDbUtils.java:127)
at org.springframework.data.mongodb.core.MongoDbUtils.getDB(MongoDbUtils.java:94)
at org.springframework.data.mongodb.core.SimpleMongoDbFactory.getDb(SimpleMongoDbFactory.java:197)
at org.springframework.data.mongodb.core.SimpleMongoDbFactory.getDb(SimpleMongoDbFactory.java:185)
at org.springframework.data.mongodb.core.MongoTemplate.getDb(MongoTemplate.java:1595)
at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:441)
at org.springframework.data.mongodb.core.MongoTemplate.doCreateCollection(MongoTemplate.java:1612)
at org.springframework.data.mongodb.core.MongoTemplate.createCollection(MongoTemplate.java:492)
at com.qixin.appmarket.service.test.TestMongodb.main(TestMongodb.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
答案 0 :(得分:3)
尝试将spring-data-mongodb
更新为最新版本。我在使用版本1.7.2.RELEASE
时收到了身份验证错误,但在更新为1.8.0.RELEASE
后停止了。
答案 1 :(得分:0)
在MongoDB
中,您可以使用:
use products
db.createUser(
{
user: "accountUser",
pwd: "password",
roles: [ "readWrite", "dbAdmin" ]
}
)