我在 docker 上启动 mongo,所以默认主机:localhost
, port: 27017
, 用户名:root
密码:example
现在我想通过连接字符串进行连接:mongodb+srv://root:example@localhost/sim
但我收到一条错误消息:
导致:com.mongodb.MongoConfigurationException:无法查找
主机 localhost 的 TXT 记录
在我的主机文件中我有:
127.0.0.1 localhost
127.0.0.1 _mongodb._tcp.localhost
Mongo运行在docker上:
Docker ps
mongo "docker-entrypoint.s…" 13 days ago Up 3 hours 0.0.0.0:27017->27017/tcp
乌班图18.04
为了使用 mongodb+srv 方案,您将需要几个 DNS 条目:
- 每个 mongodb 节点的正向查找主机 (A) 条目
- 集群的 TXT 记录
- 集群的 SRV 记录
当你添加127.0.0.1 _mongodb._tcp.localhost
这实际上是一个主机记录。
SRV记录的内容应指示几条信息,包括提供服务的节点的端口号和主机名。
See RFC 2782 https://www.rfc-editor.org/rfc/rfc2782 or SRV记录 https://en.wikipedia.org/wiki/SRV_record在维基百科上。
MongoDB 副本集的 SRV 记录可能如下所示:
_mongodb._tcp.mycluster.mydomain.com. 60 IN SRV 0 0 27017 mongohost1.mydomain.com.
_mongodb._tcp.mycluster.mydomain.com. 60 IN SRV 0 0 27017 mongohost2.mydomain.com.
_mongodb._tcp.mycluster.mydomain.com. 60 IN SRV 0 0 27017 mongohost3.mydomain.com.
TXT 记录应指示连接字符串的 URI 选项,例如"authSource=admin&replicaSet=myreplset"
。
注意ssl=true
没有明确指定,但由 SRV 方案暗示。
This 博客文章 https://www.mongodb.com/blog/post/mongodb-3-6-here-to-SRV-you-with-easier-replica-set-connections一位 MongoDB 开发人员在引入该功能时提出的建议可能会很有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)