Я новичок в mLab и пытаюсь вставить такие же простые документы в мой mongodb на mLab. Прежде всего я смог вставить некоторые документы в базу данных с помощью оболочки (командной строки) каждый раз, когда я запускаю код, я получаю эту ошибку:
Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException:
No suitable servers found (`serverSelectionTryOnce` set): [connection timeout calling ismaster on 'ds157390.mlab.com:57390'] in C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php:726
Stack trace: #0 C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php(726): MongoDB\Driver\Manager->selectServer(Object(MongoDB\Driver\ReadPreference))
#1 C:\xampp\htdocs\MongoDB\azureConnect.php(46): MongoDB\Collection->insertMany(Array) #2 {main} thrown in C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php on line 726
PHP-код:
<?php
ini_set('max_execution_time', 0);
require 'vendor/autoload.php';
$seedData = array(
array(
'decade' => '1970s',
'artist' => 'Debby Boone',
'song' => 'You Light Up My Life',
'weeksAtOne' => 10
),
array(
'decade' => '1980s',
'artist' => 'Olivia Newton-John',
'song' => 'Physical',
'weeksAtOne' => 10
),
array(
'decade' => '1990s',
'artist' => 'Mariah Carey',
'song' => 'One Sweet Day',
'weeksAtOne' => 16
),
);
$uname = "test";
$pword = "test";
$uri = "mongodb://".$uname.":".$pword."@ds157390.mlab.com:57390/data4estate";
$conn = new MongoDB\Client($uri);
$songs = $conn->data4estate->songs;
$songs->insertMany($seedData);
Попробуйте следовать инструкции для тайм-аута соединения:
https://blog.mlab.com/2013/10/do-you-want-a-timeout/
Попробуйте установить опцию тайм-аута для строки подключения
https://docs.mongodb.com/manual/reference/connection-string/#uri.connectTimeoutMS
$uri = "mongodb://".$uname.":".$pword."@ds157390.mlab.com:57390/data4estate?connectTimeoutMS=300000";
Вы можете установить socketTimeoutMS на php MongoClient, как ответили здесь:
Драйвер PHP MongoDb: Как установить тайм-аут для выполнения кода
Я новичок в mLab и пытаюсь вставить такие же простые документы в мой mongodb на mLab. Прежде всего я смог вставить некоторые документы в базу данных с помощью оболочки (командной строки) каждый раз, когда я запускаю код, я получаю эту ошибку:
Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException:
No suitable servers found (`serverSelectionTryOnce` set): [connection timeout calling ismaster on 'ds157390.mlab.com:57390'] in C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php:726
Stack trace: #0 C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php(726): MongoDB\Driver\Manager->selectServer(Object(MongoDB\Driver\ReadPreference))
#1 C:\xampp\htdocs\MongoDB\azureConnect.php(46): MongoDB\Collection->insertMany(Array) #2 {main} thrown in C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php on line 726
PHP-код:
<?php
ini_set('max_execution_time', 0);
require 'vendor/autoload.php';
$seedData = array(
array(
'decade' => '1970s',
'artist' => 'Debby Boone',
'song' => 'You Light Up My Life',
'weeksAtOne' => 10
),
array(
'decade' => '1980s',
'artist' => 'Olivia Newton-John',
'song' => 'Physical',
'weeksAtOne' => 10
),
array(
'decade' => '1990s',
'artist' => 'Mariah Carey',
'song' => 'One Sweet Day',
'weeksAtOne' => 16
),
);
$uname = "test";
$pword = "test";
$uri = "mongodb://".$uname.":".$pword."@ds157390.mlab.com:57390/data4estate";
$conn = new MongoDB\Client($uri);
$songs = $conn->data4estate->songs;
$songs->insertMany($seedData);
Попробуйте следовать инструкции для тайм-аута соединения:
https://blog.mlab.com/2013/10/do-you-want-a-timeout/
Попробуйте установить опцию тайм-аута для строки подключения
https://docs.mongodb.com/manual/reference/connection-string/#uri.connectTimeoutMS
$uri = "mongodb://".$uname.":".$pword."@ds157390.mlab.com:57390/data4estate?connectTimeoutMS=300000";
Вы можете установить socketTimeoutMS на php MongoClient, как ответили здесь:
Драйвер PHP MongoDb: Как установить тайм-аут для выполнения кода