Ich migriere mLab von Heroku zu MongoDB Atlas. Als einen der Schritte möchte ich prüfen, ob eine Verbindung zum neu erstellten Cluster besteht. Ich verwende Robo3T (früher Robomongo) für Heroku-mLab-Instanzen. Aber mit Atlas funktioniert es nicht. Beim Erstellen einer Verbindung von der URL erhalte ich folgenden Fehler:
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
Habe versucht, die Einstellungen anzupassen, aber dort sieht alles richtig aus, wie bei Heroku, der einzige Host und Port sind unterschiedlich.
Habe auch nach ähnlichen Fragen und GitHub-Problemen gesucht, aber nichts hat geholfen.
Lösung des Problems
Überprüfen Sie zunächst, ob Sie den neuesten Robo3T verwenden. MongoDB Atlas verwendet ein mongodb+srv://
Protokoll, das einige Zeit zuvor nicht unterstützt wurde.
Danach gehen Sie bitte nach folgender Checkliste vor:
- Verwenden Sie den Import
From SRV
durch Kopieren und Einfügen der URL aus MongoDB Atlas; - MongoDB Atlas verwendet Replica Sets sogar für kostenlose Sandbox-Konten (Atlas M0). Stellen Sie also während der Erstellung sicher, dass Sie diesen Typ verwendet haben;
- Füllen Sie alle Cluster-Mitglieder aus oder markieren Sie sie;
Set Name
sollte eingestellt werden.
Wichtige Unterschiede auf der Registerkarte Authentifizierung:
Database
sollteadmin
nicht wie der Datenbankname sein (wird bei Heroku verwendet),Auth Mechanism
sollte seinSCRAM-SHA-1
- Prüfen
Manually specify visible databases
und dort eingebenadmin,<you database name from Heroku>
auf der TLS-Registerkarte:
- Überprüfen
Use TLS protocol
Authentication method
-Self-signed Certificate
Jetzt sollte es funktionieren.
PS Zuvor hatte ich auch Probleme mit der gleichen Datenbank wie auf Heroku mit demselben DB-Namen und Benutzernamen. Außerdem dachte ich, dass der Auth-Mechanismus MONGODB-CR sein sollte. Aber das hat nicht funktioniert.
PPS Wenn Sie es nicht sehen Manually specify visible databases
, überprüfen Sie bitte, ob Sie die neueste Version (1.4.+) von Robo3T (früher bekannt als Robomongo) haben.
Keine Kommentare:
Kommentar veröffentlichen