sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan oprettes forbindelse til Atlas M0 (Free Tier) klynge korrekt via Java-driver?

Løst det! Så hvad jeg har gjort:

  1. Jeg forsøgte kun at oprette forbindelse til tier cluster via driver3.6 og skrev

    mongodb+srv://user:@cluster0-ox90k.mongodb.net/test?retryWrites=true

Jeg får altid en fejlmeddelelse: Connection strings must start with 'mongodb://' .

  1. Okay, jeg slettede kodestykket +srv og skrev på samme måde

    mongodb://user:@cluster0-ox90k.mongodb.net/test?retryWrites=true

og få igen fejlen:

com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=cluster0-ox90k.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: cluster0-ox90k.mongodb.net}, caused by {java.net.UnknownHostException: cluster0-ox90k.mongodb.net}}]

Så jeg skrev via driver3.4 eller tidligere synes godt om

mongodb://user:<PASSWORD>@cluster0-shard-00-00-ox90k.mongodb.net:27017,cluster0-shard-00-01-ox90k.mongodb.net:27017,cluster0-shard-00-02-ox90k.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true

og til sidst løste det sig.

Bemærk:Du kan få denne forbindelsesstreng fra Atlas-administrationskonsollen ved at indstille din Java-driver til '3.4 eller nyere'. Dette vil hjælpe dig med at undgå selv at skulle komme med forbindelsesstrengen.

Opdateret: hvis du vil bruge drivere 3.7+ , skal du skrive i stedet for at formatere forbindelse (og for at undgå mine problemer ovenfor)

MongoClientURI uri = new MongoClientURI("mongodb+srv://admin:[email protected]/test?retryWrites=true");
MongoClient mongoClient = new MongoClient(uri);

en anden variant, der bruger MongoClients.create() (fra 3.7-udgivelsen), og som nævnt her:

   MongoClient mongoClient = MongoClients.create("mongodb+srv://admin:[email protected]/test?retryWrites=true");

Bemærk: adgangskoden skal skrive ikke som mongodb://user:<mypassword>@... ,

bare i formatet mongodb://user:[email protected]

uden seler <> .



  1. Apache HBase skrivesti

  2. Node.js, Mongo finder og returnerer data

  3. Mongoose indlejret forespørgsel på Model efter felt i dens refererede model

  4. Brug jedis hvordan man skriver til en specifik slot/node i redis cluster