【问题标题】:Mongo Atlas: Connection authentication failed with custom databasesMongo Atlas:自定义数据库的连接身份验证失败
【发布时间】:2020-05-28 03:22:16
【问题描述】:

我正在尝试 Mongo Atlas Cloud。我创建了一个集群,并尝试与 mongo shell 建立连接:(与 mongo 驱动程序相同的问题)

mongo mongodb://***-cluster-shard-00-00-***.mongodb.net:27017,***-cluster-shard-00-01-***.mongodb.net:27017,***-cluster-shard-00-02-***.mongodb.net:27017/any_database?replicaSet=****-Cluster-shard-0 --ssl --username ***** --password *****

这是文档中的连接字符串。这是错误:

MongoDB shell version: 3.2.7
connecting to: mongodb://***-cluster-shard-00-00-***.mongodb.net:27017,***-cluster-shard-00-01-***.mongodb.net:27017,***-cluster-shard-00-02-***.mongodb.net:27017/any_database?replicaSet=***-Cluster-shard-0
2016-07-07T01:31:17.535-0300 I NETWORK  [thread1] Starting new replica set monitor for ***-Cluster-shard-0/***-cluster-shard-00-00-***.mongodb.net:27017,***-cluster-shard-00-01-***.mongodb.net:27017,***-cluster-shard-00-02-***.mongodb.net:27017
2016-07-07T01:31:17.535-0300 I NETWORK  [ReplicaSetMonitorWatcher] starting
2016-07-07T01:31:20.084-0300 E QUERY    [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1441:20
@(auth):6:1
@(auth):1:2

exception: login failed

只有当我使用 admin 数据库 "/admin?" 时才能连接到数据库在连接字符串中。

问题:

我需要使用控制台或 mongo 驱动程序连接到自定义数据库。

PD:我用“***”保护我的数据

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    您使用 admin 数据库进行身份验证。从那里您可以切换数据库。

    当使用 Mongo 驱动连接时,你的连接字符串需要添加授权源:

    /any_database?authSource=admin&replicaSet=xyz
    

    【讨论】:

    • 谢谢,mongo atlas 支持给了我同样的答案。
    • 我已经访问了很多关于这个主题的 SO 问题,这是关键。只需将查询字符串?authSource=admin 添加到您的连接字符串
    【解决方案2】:

    添加到 Nath 的答案,如果您通过 mongo shell 连接,请使用“--authenticationDatabase admin”,并为驱动程序使用“authSource=admin”。

    使用 [MongoDB shell 版本:3.2.8] 测试

    【讨论】:

      【解决方案3】:

      "authSource=admin" 是所有 Atlas 连接的要求。

      【讨论】:

        【解决方案4】:

        我也遇到了同样的问题。 “admin”用户将在创建数据库时创建。如果您忘记了默认管理员用户的密码,则很难连接数据库并访问集合。

        您可以在“Security->Database Access”部分下再创建一个数据库用户,并选择“Atlas admin”作为角色。

        如果您的密码包含任何特殊字符,则会在内部对其进行加密。因此,请使用此链接 (https://www.urlencoder.org/) 加密您的密码(纯文本)并使用加密字符串建立连接。

        【讨论】:

          猜你喜欢
          • 2020-06-07
          • 2021-01-18
          • 1970-01-01
          • 2020-10-29
          • 1970-01-01
          • 2016-07-05
          • 2022-08-10
          • 2010-09-12
          • 1970-01-01
          相关资源
          最近更新 更多