我试过这不起作用了。
我在Mongodb +Atlas中有以下错误:
MongoError: bad auth Authentication failed.
at /Users/cyrus/Documents/Code/01. Code/Franklin-ford/franklin-ford-server/node_modules/mongodb-core/lib/auth/auth_provider.js:46:25
at /Users/cyrus/Documents/Code/01. Code/Franklin-ford/franklin-ford-server/node_modules/mongodb-core/lib/auth/scram.js:215:18
at Connection.messageHandler (/Users/cyrus/Documents/Code/01. Code/Franklin-ford/franklin-ford-server/node_modules/mongodb-core/lib/connection/connect.js:334:5)
at Connection.emit (events.js:203:13)
at processMessage (/Users/cyrus/Documents/Code/01. Code/Franklin-ford/franklin-ford-server/node_modules/mongodb-core/lib/connection/connection.js:364:10)
at TLSSocket.<anonymous> (/Users/cyrus/Documents/Code/01. Code/Franklin-ford/franklin-ford-server/node_modules/mongodb-core/lib/connection/connection.js:533:15)
at TLSSocket.emit (events.js:203:13)
at addChunk (_stream_readable.js:295:12)
at readableAddChunk (_stream_readable.js:276:11)
at TLSSocket.Readable.push (_stream_readable.js:210:10)
at TLSWrap.onStreamRead (internal/stream_base_commons.js:166:17) {
ok: 0,
errmsg: 'bad auth Authentication failed.',
code: 8000,
codeName: 'AtlasError',
name: 'MongoError',
[Symbol(mongoErrorContextSymbol)]: {}
下面是我实例化DB的方法:
来自credentials.js
const config = {
mongoConnectionURL: "mongodb://cyruslk:<MY_PASS_HERE>@franklinford-shard-00-00-3dveb.mongodb.net:27017,franklinford-shard-00-01-3dveb.mongodb.net:27017,franklinford-shard-00-02-3dveb.mongodb.net:27017/test?ssl=true&replicaSet=FranklinFord-shard-0&authSource=admin&retryWrites=true&w=majority",
mongoDatabaseName: "FranklinFord",
}
来自我的主要server.js
应用程序:
const {MongoClient} = require("mongodb");
const connectionURL = config.mongoConnectionURL;
const databaseName = config.mongoDatabaseName;
let sendToDb = (dataToInsert) => {
MongoClient.connect(connectionURL, {
useNewUrlParser: true,
}, (error, client) => {
if(error){
console.log(error);
return console.log("Unable to connect to the db.");
}
const db = client.db(databaseName);
console.log(db);
db.collection("ford_twitter").insertOne({
masterData: dataToInsert
}, (error, result) => {
if(error){
return console.log("unable to insert users");
}
console.log("Data successfully inserted");
})
})
}
您可以找到代码这里
谢谢你帮我。我不知道发生了什么。
发布于 2020-11-15 16:08:27
我也遇到了同样的问题,在连接字符串中,它是编写的"mongodb+srv://<username>:<password>@cluster0.4h226.mongodb.n..."
,您应该在该字符串中输入用户名和密码。
"mongodb+srv://user:password@cluster0.4h226.mongodb.n..."
,不要写"<”和">";%
符号的ascii代码替换它们。例如,#
将是%35
。发布于 2021-02-07 21:09:05
我知道我使用的是正确的用户名、密码和DBname,所以我遇到了这个问题。
我试图将db用户的密码更改为重复检查,但仍然没有工作。
然后,我创建了一个新用户,给出了用户管理角色,设置了密码等等,然后使用了连接的新用户和密码(相同的dbname),它就可以工作了。
我不知道具体的问题是什么,但希望它能帮助你们中的一些人节省一些时间:)
祝好运!
发布于 2021-04-06 16:04:16
我面临着同样的问题,我已经更改了密码,但它没有工作。我的密码包括了我删除的数字,它起作用了。
https://stackoverflow.com/questions/60020381
复制相似问题