Mongodb连接问题

时间:2014-03-14 08:34:32

标签: php mongodb symfony

我对mongo数据库连接有一个非常烦人的问题。 我m using symfony2 and Mongo db php library(i don使用ODM)。有时连接失败并且出现类似错误:

"Failed to connect to: 54.246.115.206:27017: Previous connection attempts failed, server blacklisted"
  

无法连接MongoDB,请检查您的配置。 MongoDB的   说:无法连接到:54.246.115.206:27017:以前的连接   尝试失败,服务器列入黑名单。

我在网上看到了这个问题,解释是连接是持久的,你应该检查连接是否超时,如果没有使用它,如果它是一个新的。我通过以下代码建立连接:

      private function getMongoConnection($server, $user, $pass, $retry = 3) {
        try {
            return new \MongoClient($server, array("username" => $user, "password" => $pass, 'connect' => true));
        } catch (Exception $e) {
            /* Log the exception so we can look into why mongod failed later */
//            \MongoClient::close();
            logException($e);
        }
        if ($retry > 0) {
            return $this->getMongoConnection($server, $user, $pass, --$retry);
        }
        throw new Exception("I've tried several times getting MongoClient.. Is mongod really running?");
    }

我仍然得到上面的节目错误...

1 个答案:

答案 0 :(得分:0)

$ server的价值究竟是什么?

这通常在连接到ReplicaSet并且其中一个服务器出现故障时发生。 为了防止驱动程序在每个请求上尝试连接尝试而使服务器(我们知道已关闭)泛滥,我们将服务器列入黑名单几秒钟,然后再重试。

请注意,种子列表($ server)不能在服务器列表之间包含空格。服务器用逗号(,)分隔。