Я пытаюсь переместить мой кластер монго в атлас монгодб.
Когда я пытаюсь подключиться к mongoDB, он устанавливает соединение (что я вижу из журналов atlas и драйвера php-mongodb), но выдает ошибку мгновенно.
Я нашел следующее в логах php-драйвера
2018-04-27 02:27:02 :: IO (FINE): getting reply
2018-04-27 02:27:02 :: IO (FINE): getting cursor header
2018-04-27 02:27:02 :: CON (FINE): Setting the stream timeout to -1.000000
2018-04-27 02:27:02 :: MongoCursorTimeoutException (ERROR): <atlashost:port>: Read timed out after reading 0 bytes, waited for -1.000000 seconds`
И тот же код работал нормально, когда он подключался к моему собственному кластеру.
Версии и все остальное одинаково. Версия: 3.6
Я застрял в отладке, но ничего не могу найти.
Любая помощь будет оценена.
Ниже приведен код для отображения потока соединения:
final class mongoConnection {
static function createConnection() {
$ctx = stream_context_create(array(
"ssl" => array(
"verify_peer" => false
))
);
self::$connection = new MongoClient("mongodb://user:password@host:port/admin&ssl=true",array("replicaSet" => 'replicaNamw'),array("context" => $ctx));
return self::$connection;
}
}
function connectMongoDb()
{
$mongo = mongoConnection::createConnection();
$m = $mongo->getConnection();
$db = $m->selectDB('DATABASE');
return $db;
}
$mongoDb = $this->connectMongoDb();
$collection->find()->sort(array('_id' => -1))->limit(100); //this is one of the line where I am getting error in my application
Выход var_dump(self::$connection)
object(MongoClient)[21]
public 'connected' => boolean true
public 'status' => null
protected 'server' => null
protected 'persistent' => null
Ошибка:
( ! ) MongoCursorTimeoutException: <host>:<port>: Read timed out after reading 0 bytes, waited for -1.000000 seconds in <filename> on line 33