MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak poprawnie połączyć się z klastrem Atlas M0 (Free Tier) za pomocą sterownika Java?

Rozwiązałem to! A więc, co zrobiłem:

  1. Próbowałem połączyć się tylko z klastrem poziomów przez sterownik 3.6 i napisał

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

Zawsze pojawia się błąd: Connection strings must start with 'mongodb://' .

  1. OK, usunąłem fragment kodu +srv i pisał w ten sam sposób

    mongodb://użytkownik:@cluster0-ox90k.mongodb.net/test?retryWrites=true

i ponownie otrzymaj błąd:

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

Tak więc napisałem przez driver 3.4 lub wcześniejszy lubię

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

i w końcu się udało.

Uwaga:te parametry połączenia można uzyskać z konsoli zarządzania Atlas, ustawiając sterownik Java na „3.4 lub nowszy”. Pomoże Ci to uniknąć konieczności samodzielnego wymyślania parametrów połączenia.

Aktualizacja: jeśli chcesz używać sterowników 3.7+ , musisz pisać zamiast formatować połączenie (i uniknąć moich problemów powyżej)

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

inny wariant przy użyciu MongoClients.create() (od wydania 3.7) i jak wspomniano tutaj:

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

Uwaga: hasło musi być pisane inaczej niż mongodb://user:<mypassword>@... ,

tylko w formacie mongodb://user:[email protected]

bez nawiasów <> .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy można rzutować w MongoDB-Query?

  2. Mongo, przejrzyj listę identyfikatorów

  3. 6 najlepszych praktyk dotyczących wdrażania MongoDB na Amazon EC2

  4. Klonuj bazę danych w Mongodb między hostami za pomocą sterownika węzła

  5. Jak używać kombinacji $unset i $set w mongoDB