0

我对锂有以下问题。当我在本地主机上连接到 mongodb 时一切正常,但是当我在 EC2 上连接到远程 mongodb 时,它给了我以下错误:

致命错误:/Library/WebServer/Documents/v0.4/libraries/lithium/data/source/MongoDb.php:430 中的未捕获异常 'MongoCursorException' 和消息 'Operation now in progress'

两个 mongodb 版本相同(1.8.0),我可以使用 shell 连接到远程 mongodb。我在 Mac osx 雪豹上运行锂 0.9.9、mongo php 驱动程序 1.1.4 和 php 版本 5.3.4。

有什么建议么?

更新:我已尝试使用最新的主版本,但仍然有错误。你可以在这里查看我的完整堆栈跟踪:http: //pastium.org/view/90c1dd7201eca845913c4101a205a023

4

1 回答 1

1

此错误通常与数据库连接超时有关。

由于网络延迟,当 Web 服务器和 MongoDB 服务器位于不同的主机、网络或提供程序(如您的情况下为 EC2)上时,这种情况更有可能发生......

Lithium 中设置的默认超时时间是100 ms,这对于某些网络配置来说可能太慢了(但是通常应该很好。)

这在此处记录:Lithium MongoDB Adapter

Lithium MongoDB Adapter 超时设置

您可以在此处查看 Lithium 中的默认 MongoDB 连接配置:(此时为第 153 行)...

https://github.com/UnionOfRAD/lithium/blob/master/data/source/MongoDb.php

从该页面上的评论中,

'timeout' integer:连接尝试在超时和抛出异常之前等待的毫秒数。

默认为100

于 2012-05-22T21:09:26.130 回答