You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地MongoDB报SCRAM-SHA-1认证失败,ASP.NET项目如何解决?

解决MongoDB.Driver.MongoAuthenticationException: SCRAM-SHA-1认证失败问题

以下是针对性的解决步骤,按优先级尝试:

  • 升级MongoDB .NET驱动版本
    新版MongoDB(6.0+)默认使用SCRAM-SHA-256作为认证机制,旧版本的MongoDB.Driver可能不支持该机制,或对SCRAM-SHA-1的兼容性存在问题。打开NuGet包管理器,更新MongoDB.Driver和MongoDB.Bson到最新稳定版,确保驱动与MongoDB服务器版本兼容。

  • 调整连接字符串的认证机制参数
    如果暂时无法升级驱动,可在连接字符串中明确指定使用SCRAM-SHA-1,或匹配MongoDB服务器的默认机制。示例:

    mongodb://username:password@localhost:27017/yourDb?authMechanism=SCRAM-SHA-1
    

    注意:若服务器默认是SCRAM-SHA-256且驱动支持,可改为authMechanism=SCRAM-SHA-256。

  • 检查并修改MongoDB用户的认证机制
    登录MongoDB Shell,执行以下命令查看目标用户的认证机制:

    use yourDatabase;
    db.getUser("yourUsername");
    

    查看返回结果中的mechanisms字段,若不包含SCRAM-SHA-1,需重新创建用户或添加该机制:

    // 创建支持两种机制的用户
    db.createUser({
      user: "yourUsername",
      pwd: "yourPassword",
      roles: ["readWrite", "dbAdmin"],
      mechanisms: ["SCRAM-SHA-1", "SCRAM-SHA-256"]
    });
    

    若用户已存在,可使用db.updateUser更新机制:

    db.updateUser("yourUsername", { mechanisms: ["SCRAM-SHA-1", "SCRAM-SHA-256"] });
    
  • 修改MongoDB服务器的认证机制配置
    打开MongoDB的配置文件(如mongod.conf),找到security节点,添加或修改authenticationMechanisms配置,同时启用授权:

    security:
      authorization: enabled
      authenticationMechanisms: SCRAM-SHA-1,SCRAM-SHA-256
    

    保存配置后重启MongoDB服务,确保服务器同时支持两种认证机制。

  • 验证连接字符串的正确性
    检查用户名、密码是否正确,若密码包含特殊字符(如@、&、#),需进行URL编码(例如@转义为%40,&转义为%26)。同时确认连接字符串中指定的数据库与用户所属数据库一致。

内容的提问来源于stack exchange,提问作者Gerard Jaryczewski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 19:13:15