Reputation: 6355
I'm migrating mLab from Heroku to MongoDB Atlas. As one of steps I want to check if there is a connectivity to newly created cluster. I'm used Robo3T (formerly Robomongo) for Heroku mLab instances. But it doesn't work with Atlas. I'm getting following error when creating connection from URL:
Cannot connect to replica set "SampleProject"[cluster-abcd12ef-shard-00-00.a0b1c.mongodb.net:27017].
Set's primary is unreachable.
Reason:
Failed to initialize MongoWorker. Reason: connect failed
Tried to adjust settings, but everything looks correct there, like for Heroku, the only host and port are different.
Also looked on similar questions and on GitHub isssues but nothing helped.
Upvotes: 11
Views: 25248
Reputation: 5694
For me I needed to go into the Edit section of the Connection:
Then under the Authentication tab:
Paste my password into the password input:
The passwords in my json files were encrypted, so I needed the unencrypted password directly from Atlas
Upvotes: 0
Reputation: 1126
After doing import "From URI" i had to go TLS -> "Authentication Method" and select "Self-signed Certificate".
I didn't have the same problem when connecting from the MongoDB extension on VSCode.
Upvotes: 1
Reputation: 20230
It seems Robo 3T 1.4.3 returns the Cannot connect to replica set... Set's primary is unreachable
error also for authentication errors. Double check your user credentials.
In the past, all the above excellent answers have helped me resolve this error message. However, recently I encountered an Atlas cluster that seemed immune to all workarounds. I finally gave up and tried with the "official" MongoDB Compass client that Atlas promotes. This client also returned an error, but a different and far more useful one:
bad auth : Authentication failed.
Suspecting an incorrect password, I generated a new password for the user in Atlas and updated it in Robo 3T. After this Robo successfully connected to the DB.
Upvotes: 1
Reputation: 73
Make sure you have whitelisted your IP address on mongodb cloud portal under Network Access
.
Upvotes: 5
Reputation: 91
If anyone getting this error while using Robo3T version 1.4.4
, we can resolve this issue by update robo3t.json
file (enable logs and you can see where this file localed)
By enable Logs, you will see where settings saved via message starts with
Info: Settings saved to: {robo3t.json_path}
From URI
as normal, then Save.robo3t.json
file using some text editor.connections
scope, lookup your connection just created from step above, find allowInvalidCertificates
property inside ssl
object, change value from false
to true
then save the fileUpvotes: 9
Reputation: 6355
First of all, check if you are using latest Robo3T. MongoDB Atlas uses mongodb+srv://
protocol, that was not supported some time before.
After that please go by following check-list:
From SRV
by copy-pasting URL from MongoDB Atlas;Set Name
should be set.important differences on Authentication tab:
Database
should be admin
not like database name (used on Heroku),Auth Mechanism
should be SCRAM-SHA-1
Manually specify visible databases
and type there admin,<you database name from Heroku>
on TLS tab:
Use TLS protocol
Authentication method
- Self-signed Certificate
Now it should work.
P.S. Previously, I also had problems with having database same like on Heroku with same db-name and user-name, also I thought that Auth Mechanism should be MONGODB-CR. But that didn't work.
P.P.S. If you don't see Manually specify visible databases
- then please check if you have the latest version (1.4.+) of Robo3T (previously known as Robomongo)
Upvotes: 32