Сообщение об ошибке
Код: Выделить всё
ServerSelectionTimeoutError: mongo3:27017: [Errno -3] Temporary failure in name resolution (configured timeouts: socketTimeoutMS: 20000.0ms, connectTimeoutMS: 20000.0ms),mongo2:27017: [Errno -3] Temporary failure in name resolution (configured timeouts: socketTimeoutMS: 20000.0ms, connectTimeoutMS: 20000.0ms),mongo1:27017: [Errno -3] Temporary failure in name resolution (configured timeouts: socketTimeoutMS: 20000.0ms, connectTimeoutMS: 20000.0ms), Timeout: 30s, Topology Description:
Конфигурация Docker
Я создал сеть Docker:Код: Выделить всё
docker network create mongo-net
Код: Выделить всё
services:
mongo1:
image: mongo:latest
container_name: mongo1
hostname: mongo1
networks:
- mongo-net
ports:
- "27017:27017"
command: ["--replSet", "myReplicaSet"]
mongo2:
image: mongo:latest
container_name: mongo2
hostname: mongo2
networks:
- mongo-net
ports:
- "27018:27017"
command: ["--replSet", "myReplicaSet"]
mongo3:
image: mongo:latest
container_name: mongo3
hostname: mongo3
networks:
- mongo-net
ports:
- "27019:27017"
command: ["--replSet", "myReplicaSet"]
networks:
mongo-net:
driver: bridge
Код: Выделить всё
docker exec -it mongo1 mongosh
rs.initiate({
_id: "myReplicaSet",
members: [
{ _id: 0, host: "mongo1:27017" },
{ _id: 1, host: "mongo2:27017" },
{ _id: 2, host: "mongo3:27017" }
]
})
Код: Выделить всё
rs.status()
Код: Выделить всё
{
set: 'myReplicaSet',
date: ISODate('2025-01-06T13:26:53.825Z'),
myState: 1,
term: Long('1'),
...
members: [
{
_id: 0,
name: 'mongo1:27017',
stateStr: 'PRIMARY',
...
},
{
_id: 1,
name: 'mongo2:27017',
stateStr: 'SECONDARY',
...
},
{
_id: 2,
name: 'mongo3:27017',
stateStr: 'SECONDARY',
...
}
],
...
}
Код Python
Код: Выделить всё
from pymongo import MongoClient
uri = "mongodb://localhost:27017,localhost:27018,localhost:27019/?replicaSet=myReplicaSet"
client = MongoClient(uri)
db = client.my_database
collection = db.my_collection
document = {"name": "Replica Test", "value": 42}
result = collection.insert_one(document)
Как устранить проблему эта проблема?
Подробнее здесь: https://stackoverflow.com/questions/793 ... emporary-f