我在尝试将基本的本地maven springboot java应用程序连接到外部mongodb时遇到了很多麻烦。
即使只是尝试使用mongo控制台本身,也花了很长时间来理解语法。下面的示例我终于成功地连接到了(我通过批处理脚本运行)
...\mongo.exe "mongodb://serv1.unix.abc:27018,serv2.unix.abc:27018,ser3.unix.abc:27018/test?replicaSet=asdfg01h" --authenticationMechanism=GSSAPI --authenticationDatabase=$external --username="user@THATDOMAIN.COM" --password="password" -ssl --sslCAFile=C:\mongo\ca.pem
(使用mongo v 4.2.8 enterprise)
在java方面(使用jdk11、maven 3.6.1、springboot2.4.0),连接到本地mongo示例非常容易。我只需要在application-local.yml中添加一个基本uri:
spring.data.mongodb.uri: mongodb://localhost:27017/localtest
只需添加以下代码:
@Autowired
private MongoClient mongoClient;
..
..
MongoDatabase myDatabase = mongoClient.getDatabase("localtest");
但我真的不知道如何连接到与我上面编写的mongo控制台脚本相同的外部数据库。仅使用uri似乎不起作用。我认为这是因为复杂性,因为有很多变量要考虑。
复制集(3台主机)
gssapi认证机制
$外部身份验证数据库
同时提供用户名和密码(我看到的gssapi示例代码由于某些原因在任何地方都没有提到密码)
启用ssl
并指向sslcapem文件
我看到了各种使用mongoclientations mongocredential mongoclientsettings的示例
但是我一直在努力让它工作,特别是当一些文章使用不推荐的特性时。有什么帮助吗?
1条答案
按热度按时间4bbkushb1#
修改为:
在这里阅读更多关于mongodb连接字符串uri选项的信息。