我正在将MongoDB_4.0.0作为服务运行
我使用文件
C:\MongoDB_4.0.0\bin\mongod.cfg
在我的J2EE应用程序中,我不断得到:
org.springframework.data.mongodb.CannotGetMongoDbConnectionException:
Failed to authenticate to database [xeroxDB], username = [xeroxUser], password = [p*******3]
我在xeroxDB和admin上创建了用户
但它不起作用...
这是我创建用户的方式:
------- what dbs we have?
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
xeroxDB 0.004GB
------- switch to user admin
> use admin
switched to db admin
------- create the user
db.createUser(
{
user: "xeroxUser",
pwd: "pass123",
roles: [
{role : "readWrite",db: "xeroxDB"},
{role : "userAdmin",db: "xeroxDB"},
{role : "dbOwner",db : "xeroxDB"}
]
}
)
------- lets see the users
> show users
{
"_id" : "admin.xeroxUser",
"user" : "xeroxUser",
"db" : "admin",
"roles" : [
{
"role" : "readWrite",
"db" : "xeroxDB"
},
{
"role" : "userAdmin",
"db" : "xeroxDB"
},
{
"role" : "dbOwner",
"db" : "xeroxDB"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
------- enabled the security at
C:\MongoDB_4.0.0\bin\mongod.cfg
security:
authorization: enabled
------- trying to login
C:\MongoDB_4.0.0\bin>mongo.exe --username xeroxUser --password pass123
MongoDB shell version v4.0.0
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.0
2018-07-06T00:30:39.683+0300 E QUERY [js] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1679:20
@(auth):6:1
@(auth):1:2
exception: login failed
更新
当我将数据库名称(xeroxDB)添加为连接参数的一部分时 我可以通过控制台进行连接,但不能通过J2EE应用程序进行连接
mongo.exe xeroxDB --u xeroxUser --p pass123
以及相关的POM部分
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>2.0.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.12.4</version>
</dependency>