我可以通过终端连接到DB,但是使用mongoose和gulp来获取此错误。 猫鼬/ node_modules / MongoDB的/ lib中/的MongoDB /连接/ base.js:246 MongoError:auth failed
我的连接字符串是:
geography
知道它可以是什么吗?
答案 0 :(得分:27)
我在https://bitnami.com/stack/mean为Windows 7安装了MEAN 安装时我输入的密码是123456
语法使用mongoose
连接到mongodbmongoose.connect("mongodb://[usr]:[pwd]@localhost:[port]/[db]",{auth:{authdb:"admin"}});
如果没有
{auth:{authdb:"admin"}}
您将收到错误消息" MongoError:auth failed"
示例: 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
答案 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' option是您在其下创建用户的数据库。
答案 2 :(得分:6)
只需将?authSource=yourDB&w=1
添加到db url
mongoose.connect('mongodb://user:password@host/yourDB?authSource=yourDB&w=1')
这项工作对我而言。 &w=1
很重要
答案 3 :(得分:3)
您是否为dbname设置了用户?默认情况下,除非您明确设置一个用户,否则不需要用户连接到数据库。如果还没有,您应该尝试连接到mongodb://localhost:27017/dbname
并查看是否仍然出现错误。
答案 4 :(得分:3)
mongoose.connect("mongodb://[host]/[db]", { auth:{
authdb: "admin",
user: [username],
password: [pw]
}}).then(function(db){
// do whatever you want
mongoose.connection.close() // close db
})
答案 5 :(得分:3)
有很多方法可以使其工作。这就是为我工作的[猫鼬v5.9.15]:
mongoose.connect('mongodb://localhost:27017/', {
auth: {
user:'root',
password:'example'
},
authSource:"admin",
useUnifiedTopology: true,
useNewUrlParser: true
}
答案 6 :(得分:1)
我已经找到了解决方案,看起来当你从mongo shell创建用户时,它会生成SCRAM-SHA-1而不是MongoDB-CR。因此,使用MongoDB-CR身份验证创建新用户的解决方案。
答案 7 :(得分:0)
只需确保您的数据库已创建。 如果您的用户未添加到管理数据库中,请确保通过put添加它 db.createUser( ... {user:' admin',pwd:' admin',角色:[' root']} ......)
答案 8 :(得分:0)
这对mongod --version = db版本v3.6.13来说很有效
mongoose.connect('mongodb://localhost/expressapi', {
auth: {
authdb: "admin",
user: "root",
password: "root",
}
});
答案 9 :(得分:0)
mongo mongodb://usr:psw@localhost:27017/dbname
通过上述更改,它成功连接。
答案 10 :(得分:0)
mongoose.connect("mongodb://[usr]:[pwd]@localhost:[port]/[db]",{ authSource: 'admin', useNewUrlParser: true, useUnifiedTopology: true });
我遇到了同样的错误。通过添加authSource
连接功能选项解决了该问题。参见上面的代码。