MongoError:身份验证失败的猫鼬连接字符串

问题描述 投票:14回答:10

我可以通过终端连接到DB,但是使用猫鼬和gulp会出现此错误。猫鼬/node_modules/mongodb/lib/mongodb/connection/base.js:246MongoError:身份验证失败

我的连接字符串是:

mongodb://usr:psw@localhost:27017/dbname

任何想法都可以吗?

mongodb mongoose connection-string
10个回答
31
投票

我在Windows 7的https://bitnami.com/stack/mean安装了MEAN安装时,我的密码是123456

语法使与猫鼬连接到mongodb

mongoose.connect("mongodb://[usr]:[pwd]@localhost:[port]/[db]",{auth:{authdb:"admin"}});

如果没有

{auth:{authdb:"admin"}}

您将收到错误消息“ MongoError:身份验证失败”

示例: mongo-test / app.js

var mongoose = require('mongoose');
mongoose.connect('mongodb://root:123456@localhost/test',{auth:{authdb:"admin"}});
mongoose.set('debug', true); // turn on debug

14
投票

只需将?authSource=yourDB&w=1添加到数据库URL的末尾

 mongoose.connect('mongodb://user:password@host/yourDB?authSource=yourDB&w=1')

为我工作。 &w=1很重要


6
投票

您可能想做这样的事情...

var opt = {
    user: config.username,
    pass: config.password,
    auth: {
        authdb: 'admin'
    }
};
var connection = mongoose.createConnection(config.database.host, 'mydatabase', config.database.port, opt);

'authdb'选项是您在其下创建用户的数据库。


5
投票

您是否为dbname设置了用户?默认情况下,除非您明确设置一个用户,否则不需要用户连接到数据库。如果还没有,则应该尝试连接到mongodb://localhost:27017/dbname,看看是否仍然出现错误。


5
投票
mongoose.connect("mongodb://[host]/[db]", { auth:{

    authdb: "admin",
    user: [username],
    password: [pw]

}}).then(function(db){

    // do whatever you want

    mongoose.connection.close() // close db

})

1
投票

我发现了解决方案层,看起来像是从mongo shell创建用户时,它使SCRAM-SHA-1代替了MongoDB-CR。因此,使用MongoDB-CR身份验证创建新用户的解决方案。

MongoDB-CR Authentication failed


0
投票

只需确保已创建数据库。并且如果您的用户未添加到管理数据库中,请确保通过添加将其添加db.createUser(... {user:'admin',pwd:'admin',roles:['root']}...)


0
投票

这对mongod --version = db版本v3.6.13来说对我有用

mongoose.connect('mongodb://localhost/expressapi', {
    auth: {
        authdb: "admin",
        user: "root",
        password: "root",

    }
});

0
投票
mongo mongodb://usr:psw@localhost:27017/dbname
  • 密码只能是字母数字
  • 用户也应该在数据库'dbname'中可用(注意:即使用户是超级管理员)

通过上述更改,它已成功连接。


0
投票

有很多方法可以使它起作用。这就是为我工作的[猫鼬v5.9.15]:

mongoose.connect('mongodb://localhost:27017/', {
    auth: {
        user:'root',
        password:'example'
    },
    authSource:"admin",
    useUnifiedTopology: true,
    useNewUrlParser: true
}
© www.soinside.com 2019 - 2024. All rights reserved.