集群描述尚不可用。等待 30000 毫秒,然后超时 com.mongodb.diagnostics.logging.JULLogger 日志

Jac*_*son 6 java mongodb

我正在尝试将 MongoDB Atlas 与 Java 连接。这是我的代码

MongoClientSettings.Builder mongoClientSettingsBuilder = MongoClientSettings.builder()
        .credential(mongoCredential)
        .applyToClusterSettings(builder -> builder.hosts(new ServerAddress("dev-20937-liwy3.gcp.mongodb.net", 27017)));
MongoClientSettings settings = mongoClientSettingsBuilder.build();      
MongoClient mongoClient = MongoClients.create(settings);
Run Code Online (Sandbox Code Playgroud)

通过这样做,我收到以下错误

INFO: Cluster description not yet available. Waiting for 30000 ms before timing out
Mar 26, 2020 11:33:41 AM com.mongodb.diagnostics.logging.JULLogger log
Exception in thread "main" com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[{address=dev-20937-liwy3.gcp.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: dev-20937-liwy3.gcp.mongodb.net}, caused by {java.net.UnknownHostException: dev-20937-liwy3.gcp.mongodb.net}}]
Run Code Online (Sandbox Code Playgroud)

我不知道错误的原因。据我猜测,我的主机名是错误的。

有人可以帮我解决这个问题吗

ked*_*dai 0

转到您的MongoDB Atlas-> NetworkAccess-> 编辑 -> 并添加Current IP address它的作品!!

// Create a Mongo client 
  MongoClient mongo = new MongoClient( "localhost" , 27017 ); 

  // Creating Credentials 
  MongoCredential credential; 
  credential = MongoCredential.createCredential("User", "DB", 
     "pass".toCharArray()); 
  System.out.println("Connected to the database successfully");  
Run Code Online (Sandbox Code Playgroud)