问题描述
我正在尝试将我的 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 时,会显示上述错误。
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 (将#修改为@)