MongoDB,PHP& Ubuntu - 找不到候选服务器

时间:2013-09-18 16:43:32

标签: php mongodb ubuntu

我一直收到此错误,无法找到解决方案。

我在Ubuntu服务器上安装了mongoDB和PHP,安装工作正常,我可以通过终端访问mongo(没有问题的SSH),但是,当我尝试通过任何PHP应用程序访问它时即使日志显示连接已被接受,我也会收到“找不到候选服务器”。

我尝试将bind_ip设置为服务器ip,设置为127.0.0.1,设置为localhost,但没有任何工作。

额外信息:   - 我在独立模式下运行。   - 使用mongod启动mongo --fork --auth --port 27017 --logpath /var/log/mongodb/server1.log --logappend --dbpath / var / lib / mongodb / data / db /

有没有人有任何想法?

感谢。

1 个答案:

答案 0 :(得分:0)

当我使用复制(replSet选项)运行MongoDB时,似乎会出现此错误,并且由于某种原因没有可用的主服务器。

例如,重新启动主节点后,新主节点的选择似乎需要一段时间,只有辅助节点可用。

你说你没有运行复制,但处于“独立”模式......在这种情况下,other questions我看到建议确保你运行的是最新的MongoDB和PHP驱动程序版本(来自Ubuntu 10gen apt-get源码)。另外,如果出现防火墙问题,请仔细检查您是否可以从相同的服务器访问mongo <{1}}

查看要传递给MongoClient() PHP驱动程序的连接字符串会很有帮助。如果您不使用复制,它将看起来像这样:

mongo mongohost1.server.com:27107 -uUSERNAME -pPASSWORD

如果你使用复制,它会看起来像这样:

mongodb://USERNAME:PASSWORD@localhost:27017

如果您正在使用复制,请确保将主Mongodb服务器指定为其中一个服务器(驱动程序应检测哪个是主服务器,并检测主服务器是否更改)。

如果这一切都设置正确,请仔细检查您确实拥有主要内容。可能有问题,导致MongoDB不选择主节点。您可以登录Mongo命令行/控制台应用程序并运行它来检查所有副本集成员的状态:

rs.status()

我正在运行PHP 5.3,MongoDB 2.4.8,MongoDB PHP Driver 1.4.5,Ubuntu 12.04。

(我认为这篇旧帖已经得到了解决,但我发现自己遇到了类似的问题,所以我想我可能会提供一个答案来帮助人们解决他们的问题。