21

我正在尝试通过 Mongoose.connect() 连接到我在 mongoDB Atlas 上的集群,但是每次我尝试连接时都会出现异常“MongoError:身份验证失败”我知道 MongoDB Atlas 是新的 mongo 作为服务可能不是猫鼬支持了吗?

4

5 回答 5

16

这个相关帖子中的答案是正确的。你应该:

  • 不要将选项与连接字符串混合(如果这样做)
  • 确保您正在运行的 IP 已列入白名单,并且您的网络允许连接到 Atlas
  • 确保用户有足够的权限
  • 使用 atlas 提供的连接字符串并将其提供给

    mongoose.connect(uri);
    
于 2018-06-14T00:18:18.433 回答
14

MongoError:身份验证失败- 这意味着您的名称或密码或 dbname 不正确 -

uri 样本 -

const uri =
    "mongodb+srv://<username>:<password>@firstcluster.4rc4s.mongodb.net/<dbname>?retryWrites=true&w=majority";

假设用户名是 - najim & 密码是1234 & dbname 是pets(注意 - 默认 dbname 是 test 但你可以写任何你想要的东西)然后我的 uri 将与上面的 credentails -

const  mongoAtlasUri =
        "mongodb+srv://najim:1234@firstcluster.4rc4s.mongodb.net/pets?retryWrites=true&w=majority";

与月鹅建立联系

try {
    // Connect to the MongoDB cluster
     mongoose.connect(
      mongoAtlasUri,
      { useNewUrlParser: true, useUnifiedTopology: true },
      () => console.log(" Mongoose is connected")
    );

  } catch (e) {
    console.log("could not connect");
  }
于 2020-10-13T07:17:51.353 回答
5
try {
mongoose.connect( uri, {useNewUrlParser: true, useUnifiedTopology: true}, () =>
console.log("connected"));    
}catch (error) { 
console.log("could not connect");    
}

这个很好用,试试

于 2020-05-06T23:50:12.673 回答
5
const mongoAtlasUri =
  "mongodb+srv://<username>:<password>@firstcluster.4rc4s.mongodb.net/<dbname>?retryWrites=true&w=majority";

try {
  // Connect to the MongoDB cluster
  mongoose.connect(
    mongoAtlasUri,
    { useNewUrlParser: true, useUnifiedTopology: true },
    () => console.log(" Mongoose is connected"),
  );
} catch (e) {
  console.log("could not connect");
}

const dbConnection = mongoose.connection;
dbConnection.on("error", (err) => console.log(`Connection error ${err}`));
dbConnection.once("open", () => console.log("Connected to DB!"));
于 2021-02-22T09:27:48.267 回答
-2

“mongodb+srv://:@cluster0.vvkuk.mongodb.net/”也在图集里,在安全进入网络访问,会有小按钮编辑和删除点击编辑,在编辑中会有两个选项第一个选项是添加当前 IP 地址,第二个选项是允许从任何地方访问,选择第一个选项,然后单击确认

于 2021-05-22T20:17:32.163 回答