MongoDB:无法连接到新的副本集主服务器

时间:2019-12-07 18:22:08

标签: javascript node.js mongodb replicaset

尝试为我的Node.JS应用程序设置MongoDB。我运行以下命令:

mongo "mongodb+srv://cluster0-gjc2u.mongodb.net/test"  --username <myusername>

并且每次都得到这个响应。

MongoDB shell version v4.2.1
Enter password:
connecting to: mongodb://cluster0-shard-00-00-gjc2u.mongodb.net:27017,cluster0-shard-00-01-gjc2u.mongodb.net:27017,cluster0-shard-00-02-gjc2u.mongodb.net:27017/test?authSource=admin&compressors=disabled&gssapiServiceName=mongodb&replicaSet=Cluster0-shard-0&ssl=true
2019-12-07T12:14:39.630-0600 I  NETWORK  [js] Starting new replica set monitor for Cluster0-shard-0/cluster0-shard-00-00-gjc2u.mongodb.net:27017,cluster0-shard-00-01-gjc2u.mongodb.net:27017,cluster0-shard-00-02-gjc2u.mongodb.net:27017
2019-12-07T12:14:39.630-0600 I  CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to cluster0-shard-00-00-gjc2u.mongodb.net:27017
2019-12-07T12:14:39.631-0600 I  CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to cluster0-shard-00-01-gjc2u.mongodb.net:27017
2019-12-07T12:14:39.631-0600 I  CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to cluster0-shard-00-02-gjc2u.mongodb.net:27017
2019-12-07T12:14:40.259-0600 I  NETWORK  [ReplicaSetMonitor-TaskExecutor] Confirmed replica set for Cluster0-shard-0 is Cluster0-shard-0/cluster0-shard-00-00-gjc2u.mongodb.net:27017,cluster0-shard-00-01-gjc2u.mongodb.net:27017,cluster0-shard-00-02-gjc2u.mongodb.net:27017
2019-12-07T12:14:40.799-0600 I  NETWORK  [js] Marking host cluster0-shard-00-00-gjc2u.mongodb.net:27017 as failed :: caused by :: Location40659: can't connect to new replica set master [cluster0-shard-00-00-gjc2u.mongodb.net:27017], err: AuthenticationFailed: bad auth Authentication failed.


*** It looks like this is a MongoDB Atlas cluster. Please ensure that your IP whitelist allows connections from your network.


2019-12-07T12:14:40.800-0600 E  QUERY    [js] Error: can't connect to new replica set master [cluster0-shard-00-00-gjc2u.mongodb.net:27017], err: AuthenticationFailed: bad auth Authentication failed. :
connect@src/mongo/shell/mongo.js:341:17
@(connect):2:6
2019-12-07T12:14:40.803-0600 F  -        [main] exception: connect failed
2019-12-07T12:14:40.804-0600 E  -        [main] exiting with code 1

我已将我的IP地址列入白名单,并确保一切正常。是什么导致此问题,我该如何解决?为什么会出现此问题?

5 个答案:

答案 0 :(得分:3)

我尝试过的是:

  1. 创建新用户
  2. 确保连接应用程序时mongoURI的用户名和密码与连接mongo shell时的用户名和密码相同。
  3. 在应用程序的命令行中运行连接字符串

答案 1 :(得分:0)

所以你必须照顾两件事。

1)首先,在$ PATH中包含mongodb,如果尚未在主文件夹下创建.bash_profile,则插入以下内容。(对于Ubuntu)

export PATH =“ $ PATH:def bbtest(): bb[0] += 1 bb = "foo" ” 确保将mongo的位置放在计算机上。如果您不知道位置,请在终端上键入/usr/bin/mongo。 保存后,在终端中输入whereis mongo

2)最后,从mongodb地图集复制连接链接,并在要求输入source ~/.bashrcusername

时复制

请提供用于访问数据库而不是mongdb Atlas帐户的凭据集。

答案 2 :(得分:0)

我意识到“稍等片刻”并不是一个非常有建设性的答案,但是我遇到了同样的问题,也没有找到解决方案的运气,因此将其搁置了两个小时,然后又回来寻找它能正常工作的方法。

说您的更改已部署的文字具有误导性。不知道为什么要花几个小时才能使用,但是作为参考,我在使用M0沙盒群集层时发现了这一点。

答案 3 :(得分:0)

此分辨率可能特定于Cloud MongoDB提供的从mLab到MongoDB Atlas的迁移工具。

我的决议是:

  1. 重新创建具有相同用户名的用户
  2. 从特殊的mLabs拨款更改为Atlas内置角色
  3. 设置新的凭据,我也避免使用特殊字符。

祝你好运!

答案 4 :(得分:-2)

创建一个简单的密码,该密码不包含任何特殊字符,仅包含字母和数字。

我无法访问,但更改密码对我有用。