首先,我作爲管理員登錄到我的MongoDB:我爲什麼會遇到異常:嘗試登錄到mongodb時登錄失敗?
sudo mongo admin --username root --password XXXXXXXX
然後我創建了root角色另一個用戶:
> use admin
> db.createUser(
{
user: "myuser",
pwd: "myPassw",
roles: [ "root" ]
}
)
然後我寫道:
> db.getUsers()
和我的用戶是有:
{
"_id" : "admin.root",
"user" : "root",
"db" : "admin",
"roles" : [
{
"role" : "readWriteAnyDatabase",
"db" : "admin"
},
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
},
{
"role" : "dbAdminAnyDatabase",
"db" : "admin"
},
{
"role" : "clusterAdmin",
"db" : "admin"
}
]
},
{
"_id" : "admin.myuser",
"user" : "myuser",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
現在,當我嘗試登錄:
sudo mongo admin --username myuser --password myPassw
MongoDB shell version: 3.2.1
connecting to: /opt/bitnami/mongodb/tmp/mongodb-27017.sock:27017/admin
2016-02-10T21:23:53.964+0000 E QUERY [thread1] Error: Authentication failed. :
[email protected]/mongo/shell/db.js:1395:16
@(auth):6:1
@(auth):1:2
exception: login failed
是什麼原因呢?我重新啓動了mongodb進程,但它沒有幫助。
=======編輯:
以下羅比意見後,我跑的命令,而不sudo
,不幸的是這是結果:
[email protected]:~/stack$ mongo admin -u myuser -p myPassw
MongoDB shell version: 3.2.1
connecting to: /opt/bitnami/mongodb/tmp/mongodb-27017.sock:27017/admin
2016-02-10T21:56:15.615+0000 W NETWORK [thread1] Failed to connect to /opt/bitnami/mongodb/tmp/mongodb-27017.sock:0, reason: errno:13 Permission denied
2016-02-10T21:56:15.615+0000 E QUERY [thread1] Error: couldn't connect to server /opt/bitnami/mongodb/tmp/mongodb-27017.sock:27017, connection attempt failed :
[email protected]/mongo/shell/mongo.js:226:14
@(connect):1:6
exception: connect failed
當您以管理員身份登錄時,'db.auth('myuser','myPassw')'是否工作? – Robbie
它返回'1'。這很好嗎? – user3766930
「db.auth()在身份驗證不成功時返回0,操作成功時返回1」看起來用戶很好 - 嘗試連接到沒有sudo的shell。 – Robbie