MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie verbinde ich mich korrekt mit dem Atlas M0 (Free Tier)-Cluster über den Java-Treiber?

Gelöst! Also, was ich getan habe:

  1. Ich habe nur versucht, über driver3.6 eine Verbindung zum Tier-Cluster herzustellen und schrieb

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

Ich erhalte immer eine Fehlermeldung: Connection strings must start with 'mongodb://' beginnen .

  1. Okay, ich habe das Snippet +srv gelöscht und genauso geschrieben

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

und erhalte erneut den Fehler:

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}}]

Also schrieb ich über Treiber 3.4 oder früher wie

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

und endlich gelöst.

Hinweis:Sie können diese Verbindungszeichenfolge von der Atlas-Verwaltungskonsole abrufen, indem Sie Ihren Java-Treiber auf „3.4 oder höher“ einstellen. Dadurch vermeiden Sie, dass Sie sich die Verbindungszeichenfolge selbst ausdenken müssen.

Aktualisiert: wenn Sie die Treiber 3.7+ verwenden möchten , müssen Sie anstelle von format connection schreiben (und um meine obigen Probleme zu vermeiden)

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

eine andere Variante mit MongoClients.create() (ab Version 3.7) und wie hier erwähnt:

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

Hinweis: das Passwort muss nicht wie mongodb://user:<mypassword>@... geschrieben werden ,

nur im Format mongodb://user:[email protected]

ohne Klammern <> .