我对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?");
}
我仍然得到上面的节目错误...
答案 0 :(得分:0)
$ server的价值究竟是什么?
这通常在连接到ReplicaSet并且其中一个服务器出现故障时发生。 为了防止驱动程序在每个请求上尝试连接尝试而使服务器(我们知道已关闭)泛滥,我们将服务器列入黑名单几秒钟,然后再重试。
请注意,种子列表($ server)不能在服务器列表之间包含空格。服务器用逗号(,)分隔。