1
//the first user
{
    "_id" : "admin.guguji55",
    "user" : "guguji55",
    "db" : "admin",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "test"
        }
    ]
}

//the second user
{
    "_id" : "test.guguji66",
    "user" : "guguji66",
    "db" : "test",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "test"
        }
    ]
}

我创建了两个用户,'guguji55' 无法连接我的测试数据库,但'guguji66' 可以。我不知道为什么。我的 nodejs 连接代码如下:

MongoClient.connect('mongodb://guguji66:du****kuan****@localhost:27017/test', function(err, db) {});
4

2 回答 2

0

让我向您解释确切的场景,即您的用户发生了什么。当您创建第一个用户guguji55时,您就在数据库admin中。所以用户通过链接admin数据库创建。

//the firsr user
{
    "_id" : "admin.guguji55",
    "user" : "guguji55",
    "db" : "admin",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "test"
        }
    ]
}

第二个用户是在test数据库中创建的,因此它链接到测试数据库,这就是您无法通过guguji55.

解决方案: 删除第一个用户guguji55并在没有任何数据库内部或数据库内部的情况下重新创建它test

有关更多参考,请参阅此 链接

于 2017-08-20T06:37:56.057 回答
0
 //the first user
    {
        "_id" : "admin.guguji55",
        "user" : "guguji55",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "readWrite",
                        "db" : "test"
                }
        ]
}
 //the second user
{
        "_id" : "test.guguji66",
        "user" : "guguji66",
        "db" : "test",
        "roles" : [
                {
                        "role" : "readWrite",
                        "db" : "test"
                }
        ]
}

With reference to above block you created the first user (guguji55) for admin database. and second user (guguji66) for test database. And you were trying to connect test database with the first user which you can't.

于 2017-08-20T05:39:26.703 回答