MongoDB Compass强制我在尝试连接到本地数据库时输入副本集名称。我能避免这个吗?

MongoDB Compass强制我在尝试连接到本地数据库时输入副本集名称。我能避免这个吗?,mongodb,compass,mongodb-compass,Mongodb,Compass,Mongodb Compass,编辑: 我不确定我做了什么不同的事情(同样,这是我做这一切的第一步),但现在我没有收到以前收到的错误消息。相反,它只是试图建立连接,我得到了 服务器选择在30000毫秒后超时 过了一段时间 原件: 我刚开始使用MongoDB,目前正在网上学习后端课程 最近,Compass似乎改变了他们的界面,添加了一个新的连接,可能还有一些业务逻辑,因为我找到的所有指南都使用了前一个 具体地说,在添加新连接时,在我阅读的指南中,它们将副本集名称保留为空。当我尝试这样做时,我得到一个错误,说选项的键值对不完整 我

编辑:

我不确定我做了什么不同的事情(同样,这是我做这一切的第一步),但现在我没有收到以前收到的错误消息。相反,它只是试图建立连接,我得到了

服务器选择在30000毫秒后超时

过了一段时间

原件:

我刚开始使用MongoDB,目前正在网上学习后端课程

最近,Compass似乎改变了他们的界面,添加了一个新的连接,可能还有一些业务逻辑,因为我找到的所有指南都使用了前一个

具体地说,在添加新连接时,在我阅读的指南中,它们将副本集名称保留为空。当我尝试这样做时,我得到一个错误,说选项的
键值对不完整

我试着只调用它
localhost
,它“起作用”,但我没有看到我的任何数据库。 如果我与机器人3t连接,我可以看到它们

是不是一个错误的
副本集名称
阻止了我判断DBs?还是我做错了什么

我在尝试连接时的设置为:

Hostname : `localhost`
port : 27017
SRV record : I leave it off
Authentication : None
Replica Set Name : localhost
Read preferences : Primary
SSl : none
SSL tunnel : None

Compass似乎需要指定一个副本集名称,这是基于我在指定一个主机(恰好是辅助主机)时收到的以下消息:

加载导航时出错:“not master and slaveOk=false”:建议将连接对话框中的读取首选项更改为主首选项或次首选项,或者为完整拓扑连接提供副本集名称

“服务器选择超时”可能意味着不同的事情:

  • 没有数据库正在运行
  • 数据库正在运行,但您输入了错误的端口号
  • Compass试图执行需要特定服务器类型(例如主服务器或辅助服务器)的特定操作。数据库正在运行,并且有一台服务器正在侦听您指定的端口,但它的类型错误

根据错误消息很难说哪一个是这种情况。

我在一台机器上工作时遇到了与副本集成员(主)相同的问题。我这样做是因为我必须使用spring data mongodb的
@Transactional
。我解决的问题是登录到mongo shell并发布:
rs.initiate()

我不确定我更改了什么,但现在我再也不会收到此错误。相反,我得到的只是一个超时错误。如果您已经创建了连接,Compass在无法连接时会显示旧的(缓存的)数据。如果您将鼠标悬停在正确的UI元素上,它可能会告诉您它无法连接。我以前没有进行过本地连接。我看不到任何缓存数据(我根本看不到任何数据)。但我在连接Atlas时没有问题,这很奇怪,因为这似乎是大多数人都有问题的地方,但我没有。只有连接到我的本地数据库才会导致这些问题。mongodb://localhost 和mongodb://localhost:27017/db .我不确定是哪个,但我已重新插入服务器并使用
mongodb://localhost:27017/db
现在就可以连接了!干杯