Ошибка MongoDB: не найдено подходящих серверов (`serverselectiontryonce` set): [Timeout Timeout Socket Timeout Call HellPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка MongoDB: не найдено подходящих серверов (`serverselectiontryonce` set): [Timeout Timeout Socket Timeout Call Hell

Сообщение Anonymous »

Итак, у меня есть докеризованный mongodb.

Код: Выделить всё

  mongodb:
image: mongo:latest
container_name: mongodb
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: xxxx
MONGO_INITDB_ROOT_PASSWORD: xxxx
ports:
- "27017:27017"
volumes:
- ./mongodb/data:/data/db
logging:
driver: "json-file"       # Use the JSON file logging driver
options:
max-size: "200k"        # Rotate log files when they reach 200KB
max-file: "10"          # Keep up to 10 rotated log files
< /code>
Когда я подключаюсь к нему с этой командой, это дает мне список баз данных: < /p>
docker exec -it mongodb mongosh "mongodb://xxxx:xxxx@localhost:27017/Test?authSource=admin" --eval "db.getCollectionNames()"
< /code>
Но когда я пытаюсь подключиться к нему, используя драйвер PHP: < /p>
$mongodb_url = "mongodb://xxxx:xxxx@localhost:27017/Test";

try {
// Create MongoDB manager
$manager = new MongoDB\Driver\Manager($mongodb_url);

// Test query on 'urls' collection
$query = new MongoDB\Driver\Query([]);
$cursor = $manager->executeQuery('Test.urls', $query);

echo "Mongodb successfully connected!\n";

foreach ($cursor as $doc) {
print_r($doc);
}
} catch (MongoDB\Driver\Exception\Exception $e) {
echo "Failed to connect or query MongoDB. Error: " . $e->getMessage() . "\n";
}
< /code>
Это дает мне эту ошибку: < /p>
Failed to connect or query MongoDB. Error: No suitable servers found (`serverSelectionTryOnce` set): [socket timeout calling hello on '127.0.0.1:27017']. Topology type: Single
< /code>
Драйвер PHP работает, потому что я могу создать MongoDB Manager < /p>
$manager = new MongoDB\Driver\Manager($mongodb_url);
< /code>
Проблема в том, когда я пытаюсь выполнить запрос < /p>
$query = new MongoDB\Driver\Query([]);
$cursor = $manager->executeQuery('Test.urls', $query);
Обратите внимание, что скрипт PHP работает отлично и прекрасно работает, не изменяя код.

Подробнее здесь: https://stackoverflow.com/questions/797 ... set-socket
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»