0

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

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

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

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

有没有人有任何想法?

谢谢。

4

1 回答 1

0

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

例如,在重新启动主节点后,选择新的主节点似乎需要一段时间,除了辅助节点之外什么都没有。

您说您没有运行复制,而是处于“独立”模式......在这种情况下,我看到的其他问题建议确保您运行的是最新的 MongoDB 和 PHP 驱动程序版本(来自 Ubuntu 10gen apt-get 源)。还要仔细检查您是否可以从PHP所在的同一台服务器访问 mongo,以防出现防火墙问题:mongo mongohost1.server.com:27107 -uUSERNAME -pPASSWORD

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

mongodb://USERNAME:PASSWORD@localhost:27017

如果您使用复制,将看起来像这样:

mongodb://USERNAME:PASSWORD@host1.server.com:27017,host2.server.com:27017,host3.server.com:27017/?replicaSet=my_replica_set

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

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

rs.status()

我正在运行 PHP 5.3、MongoDB 2.4.8、MongoDB PHP 驱动程序 1.4.5、Ubuntu 12.04。

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

于 2014-01-24T23:09:45.350 回答