PHP 5.6.4 is available

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
    puis, relancez Apache.

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.

Synopsis de la classe

MongoConnectionException extends MongoException {
}
add a note add a note

User Contributed Notes 1 note

up
2
jefffan24+phpcomment at gmail dot com
1 year ago
If you have MongoClient class available and use persist option you will have a bad time and get a MongoConnectionException

For example if you have:

<?php
$options
= array(
           
'replicaSet' => false,
           
'persist' => false,
           
'connect' => false
       
);
return new \
Mongo('mongodb://...', $options);
?>

This will not work if you have the mongo client class a better way to handle this if your not sure what is on the server this code is running on is the following:

<?php
$options
= array(
           
'replicaSet' => false,
           
'connect' => false
       
);
        if(!
class_exists('MongoClient')){
           
$options['persist'] = false;
        }
        return new \
Mongo('mongodb:/...', $options);
?>

This will only add it in the case where MongoClient doesn't exist and it needs it.  Hope this saves anyone some heart ache.
To Top