La classe MongoConnectionException
(PECL mongo >= 1.0.0)
Introduction
Émise lorsque le pilote échoue à se connecter à la base de données.
Il y a plusieurs messages d'erreur possibles afin de vous aider à analyser un problème de connexion. Les voici :
-
No candidate servers found
Lancé lorsque le driver ne peut établir une connexion à MongoDB (rempli les ReadPreferences, si spécifié).
-
No server name given.
Cette erreur survient si vous passez une chaine vide comme nom de serveur, peut à cause d'une faute dans la variable de connexion, i.e. "$servr" au lieu de "$server".
-
failed to get left host [hostname] or port [portnum] from [server].
Ceci indique que le premier ou le second serveur, respectivement "server1,server2" dans la chaîne de connexion, est mal formé. "[hostname]" et "[portnum]" doivent correspondre aux éxigences du driver.
-
Operation in progress
Délai d'attente expiré lors de la connexion à la base de données.
-
Transport endpoint is not connected
En général cela signifie que la chaine de connexion est incorrecte, le pilote ne trouve pas le serveur de base de données.
-
couldn't determine master
Aucun serveur du jeu de réplication n'a été identifié comme primaire.
-
couldn't get host info for [server]
Ceci indique que les DNS n'ont pas réussis à résoudre l'adresse du serveur que vous avez fourni. Vérifier la chaîne fournie.
-
Invalid Argument
Ceci peut être dû lorsque vous tentez d'accéder à une machine qui fonctionne mais dont la base de données n'est pas en marche. Assurez-vous que la base de données est en fonctionnement avant de tenter de vous y connecter.
-
Permission denied
Ceci signifie que le socket ne peut être ouvert en raison d'un problème sur les permissions. Sur les systèmes à base de Red Hat, ceci peut être dû à une configuration par défaut qui n'autorise pas Apache à créer des connexions réseaux. Vous pouvez résoudre ce problème en exécutant la commande suivante :
$ /usr/sbin/setsebool -P httpd_can_network_connect 1
Si le message d'erreur que vous recevez n'est pas listé ci-dessus, c'est probablement une erreur qui provient du socket C, et vous pouvez chercher sur le web pour trouver les causes du problème.