Ich entwickle eine PHP-Webanwendung, die ein MongoDB-Replicaset verwendet, um meine Daten zu speichern. Ich erhalte gelegentlich den folgenden Fehler:
Schwerwiegender Fehler: Nicht abgefangene Ausnahme 'MongoConnectionException' mit der Nachricht 'Keine Kandidatenserver gefunden'
Ich habe ein Mongo-Replikat mit 3 Mitgliedern und 1 Schiedsrichter.
%Vor%Unten ist ein Beispiel für den Code, wo ich gelegentlich diesen Fehler erhalte.
%Vor%Jeder hat eine Idee, was die Meldung "Keine Kandidatenserver gefunden" oder irgendwelche Vorschläge dazu, wie ich die Ursache des Problems ermitteln könnte, verursachen könnte?
Alle meine mongo.conf-Dateien verwenden die statische IP jedes Servers, keine Firewalls und DNS scheint korrekt in die .local-Domäne in meinem Netzwerk aufzulösen.
BEARBEITEN: Ich habe die Protokollierung hinzugefügt, die von Derick vorgeschlagen wurde, bevor ich MongoClient instanziiere.
%Vor%Nach dem Aktivieren der Protokollierung habe ich die folgenden Hinweise erhalten.
%Vor%Ich würde vorschlagen, dass Sie Protokollierung hinzufügen, um herauszufinden, was passiert. Der Mongo-Treiber (seit Version 1.3) bietet eine ausführliche Protokollierung zum Debuggen von Verbindungsproblemen. Es gibt einen Artikel in Ссылка , um zu erklären, wie man ihn anschaltet. Wenn aus den Protokollinformationen nicht klar ist, was passiert, aktualisieren Sie Ihre Frage mit dem Protokoll, damit ich meine Antwort aktualisieren kann.
Im geposteten Protokoll kann ich sehen, dass Ihr Client keine Verbindung zu any der Startwerte aus Ihrer Verbindungszeichenfolge herstellen kann. Wenn Ihr Computer / Client keine Verbindung herstellen kann, können Sie natürlich nicht mit MongoDB sprechen. In diesem Fall kann es ein paar Möglichkeiten geben:
Tags und Links php mongodb mongodb-php