robo t3连接mongodb replica set问题
背景
搭建一个mongodb集群之后,想用robo 3t进行可视化操作时,在连接集群的时候出现两个问题导致无法连接。故记下解决办法。
robo 3t连接配置
connetion部分:
注:IP为非真实,只是为了说明问题而已。
authentication部分:
操作过程
- 按照上面的配置,点击Test按钮之后出现下面的报错。
查看详细报错为:
问题排查过程
1.首先使用命令验证是否是集群的问题。
mongo
mongodb://testDB:8749.11[dk@101.198.142.156:1234,101.198.142.157:1234,101.198.142.158:1234,101.198.142.159:1234,101.198.142.160:1234/testDB/replicaSet=bcats_test
发现是可以正常连接的,但是警告101.198.142.156:1234,101.198.142.157:1234拒绝连接。
2.怀疑是robo 3t的问题,然后利用错误信息到google和百度搜索。
Cannot connect to replica set "offline"[101.198.142.156:1234].
Set's primary is unreachable
Failed to initialize MongoWorker. Reason: connect failed
找到一个相关的stackoverflow博客:https://stackoverflow.com/questions/64545942/robomongo-cannot-connect-to-replica-set-sets-primary-is-unreachable。 但是说是srv的问题或者说是robo版本的问题,但是经过下面的继续排查,发现不是。
-
调换下机器的顺序:
发现可以登录。 -
查找关于mongodb的replica set的设计思路。
发现这个就相当与主从框架,可以单个机器登录。 -
单个机器登录,发现:
101.198.142.156这个机器没有testDB这个用户。(为啥没挂,却没有同步数据,这个还在查找中)
101.198.142.157这个机器挂了。 -
解决办法。
将主机器的配置同步到101.198.142.156、101.198.142.157即可。然后还原到之前的机器顺序,可以连接了。
结论
robo 3t在连接mongodb replica set的集群时,会根据第一个机器的状态判断是否能够连接成功,如果第一个能够连接失败则无法连接成功。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
2021-06-21 二进制手表