2011-02-09 4 views
1

Je connexion uncomented de MongoDB dans bootstrap/connections.php et tout semble être ok, mais maintenant, je reçois l'erreur suivante:Impossible de se connecter à MongoDB au lithium

(!) Fatal error: Uncaught exception 'lithium\core\NetworkException' with message 'Could not connect to the database.' in C:\wamp\www\libraries\lithium\data\source\MongoDb.php on line 792 
    (!) lithium\core\NetworkException: Could not connect to the database. in C:\wamp\www\libraries\lithium\data\source\MongoDb.php on line 792 
    Call Stack 
    # Time Memory Function Location 
    1 0.0004 370296 {main}() ..\index.php:0 
    2 0.0328 2618640 lithium\action\Dispatcher::run() ..\index.php:36 
    3 0.0328 2619848 lithium\core\StaticObject::_filter() ..\Dispatcher.php:122 
    4 0.0329 2621472 lithium\util\collection\Filters::run() ..\StaticObject.php:128 
    5 0.0330 2623800 {closure}() ..\Filters.php:182 
    6 0.0397 2692456 lithium\util\collection\Filters->next() ..\cache.php:47 
    7 0.0397 2692488 {closure}() ..\Filters.php:201 
    8 0.0428 2720784 lithium\util\collection\Filters->next() ..\action.php:52 
    9 0.0428 2720816 lithium\action\{closure}() ..\Filters.php:201 
    10 0.0448 2756432 lithium\core\StaticObject::invokeMethod() ..\Dispatcher.php:121 
    11 0.0448 2756464 lithium\action\Dispatcher::_call() ..\StaticObject.php:74 
    12 0.0449 2757552 lithium\core\StaticObject::_filter() ..\Dispatcher.php:203 
    13 0.0449 2757808 lithium\action\{closure}() ..\StaticObject.php:121 
    14 0.0449 2757808 lithium\action\Controller->__invoke() ..\Dispatcher.php:200 
    15 0.0449 2759408 lithium\core\Object->_filter() ..\Controller.php:184 
    16 0.0449 2759688 lithium\action\{closure}() ..\Object.php:245 
    17 0.0450 2759936 lithium\core\Object->invokeMethod() ..\Controller.php:172 
    18 0.0450 2759968 app\controllers\PostsController->add() ..\Object.php:167 
    19 0.0643 3862976 lithium\data\entity\Document->save() ..\PostsController.php:25 
    20 0.0643 3863176 lithium\data\Entity->__call() ..\Entity.php:0 
    21 0.0644 3863672 call_user_func_array () ..\Entity.php:197 
    22 0.0644 3863936 lithium\data\Model->save() ..\Entity.php:0 
    23 0.0644 3867352 lithium\data\Model::_filter() ..\Model.php:719 
    24 0.0645 3867608 lithium\core\StaticObject::_filter() ..\Model.php:891 
    25 0.0645 3867728 lithium\data\{closure}() ..\StaticObject.php:121 
    26 0.0723 4182168 lithium\data\source\MongoDb->create() ..\Model.php:713 
    27 0.0723 4182168 lithium\data\source\MongoDb->_checkConnection() ..\MongoDb.php:346 

Semble question un peu bizarre pour moi . Pour être exact suivait tutoriel blog de lithium.

EDIT ajoutant mongo configuration db de phpinfo()

mongo 
MongoDB Support enabled 
Version  1.1.3 

Directive Local Value Master Value 
mongo.allow_empty_keys 0 0 
mongo.allow_persistent 1 1 
mongo.auto_reconnect 1 1 
mongo.chunk_size 262144 262144 
mongo.cmd $ $ 
mongo.default_host localhost localhost 
mongo.default_port 27017 27017 
mongo.long_as_object 0 0 
mongo.native_long 0 0 
mongo.no_id 0 0 
mongo.utf8 1 1 

Répondre

4

Assurez-vous que vous utilisez le dernier maître de Git de lithium. La version de dernière version était 0.9.9, et l'extension Mongo PECL a fait 3 changements majeurs de BC-rupture depuis lors. Ils sont fixés dans le noyau, ils n'ont tout simplement pas encore été lancés dans une version. De plus, un nom d'utilisateur et un mot de passe ne sont PAS obligatoires.

+0

a obtenu cela en travaillant en ajoutant persistant =>' foo 'à la chaîne, mais essayera d'obtenir le dernier maître à. Nate aussi quand vous attendez de sortir 1.0.0 ??? – Marius

+0

Prochainement. Nous avons juste quelques fonctionnalités supplémentaires avant que l'API ne devienne stable. –

0

En supposant que vous avez bon hôte, le port et informations de connexion assurez-vous que vous avez la dernière version de l'extension MongoDB.

J'ai rencontré un problème similaire. Li3 utilise mongodb://{$login}{$host}/{$cfg['database']} qui n'était pas supporté par les anciennes versions.

+0

avoir la dernière version 1.1.4 essayé un plus ancien 1.1.3 la même chose arrive ... – Marius

0

peut-être est ce ticket (résolu pour moi):

http://rad-dev.org/lithium/tickets/view/204

+0

en fait il semble que pour se connecter à MongoDB nom d'utilisateur et mot de passe est obligatoire. Très étrange – Marius

+0

pour moi cela n'avait rien à voir avec le nom d'utilisateur/mot de passe (je ne suis pas sûr d'avoir ou non passé), mais avec le drapeau 'persistant', que je devais mettre' somevalue' (false didn 't travail) – harpax

+0

réellement votre billet m'a aidé ajouté à la connexion array' persistante '=>' foo 'maintenant il se connecte à mongo – Marius

0

J'ai dû rétrograder mon extension PECL pour la faire fonctionner.

+0

En fait, le clonage à partir du référentiel résout également le problème – Marius

Questions connexes