无法连接到 Mongo Atlas 等待连接时 30000 毫秒后超时集群状态的客户端视图是 {type=UNKNOWN,

问题描述

我正在尝试将我的 Java 机器人连接到 Mongo Atlas,但遇到此错误

com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting to connect. Client view of cluster state is {type=UNKNowN,servers=[{address=localhost:27017,type=UNKNowN,state=CONNECTING,exception={com.mongodb.MongoSocketopenException: Exception opening socket},caused by {java.net.ConnectException: Connection refused: no further information}}]

当我设置本地数据库(mongo shell -> mongod 命令)时,它会连接到它并且一切正常。但是当我关闭本地数据库时,它会显示错误

我的凭据也是正确的,因为当我使用相同的链接将 Mongo Compass 连接到 Atlas 时,它已连接但当我使用该链接连接到主程序中的 mongo atlas 时,会显示上述错误

错误显示地址= localhost:27017

 final String uri = "mongodb+srv://<censored>:<censored>@cluster0.7wsis.mongodb.net/DB?retryWrites=true&w=majority";
    MongoClient mongoClient = MongoClients.create(uri);

这是我用来连接的代码。我确信凭据是正确的。

使用的 Java mongo 驱动程序版本 - 4.2.3(同步)

任何人都可以帮我解决这个问题,在这个问题上停留了很长时间。

build.gradle -

plugins {
id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
    center()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
    compile 'org.mongodb:mongodb-driver-sync:4.2.3'
    compile 'net.dv8tion:JDA:4.2.0_247'
    compile group: 'com.googlecode.json-simple',name: 'json-simple',version: '1.1.1'
}

test {
    useJUnitPlatform()
}

编辑 - 我尝试在 pymongo 的帮助下使用相同的链接(复制粘贴)连接到 mongo 图集,一切都很好。 这意味着我没有任何网络或端口阻塞问题,而且我的链接和凭据都是正确的。问题应该出在代码上。 但是如果代码有问题,为什么它首先与本地数据库一起工作? 上面添加的依赖项中是否有任何额外的依赖项,我应该添加这些依赖项,以便 java 驱动程序理解链接

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)