5

Trying to connect to - mongodb://localhost:27017 on windows 10

I'm getting this error - getaddrinfo ENOTFOUND mongo_replica_1 on mongo compass.

Terminal error -

Error: Database error. error code: unknown, error message: Server selection timeout: No available servers. Topology: { Type: ReplicaSetNoPrimary, Servers: [ { Address: mongo_replica_1:27017, Type: Unknown, Error: No such host is known. (os error 11001) }, { Address: mongo_replica_2:27018, Type: Unknown, Error: No such host is known. (os error 11001) }, { Address: mongo_replica_3:27019, Type: Unknown, Error: No such host is known. (os error 11001) }, ] }

I solved it on mac by adding - 127.0.0.1 mongo_replica_1 127.0.0.1 mongo_replica_2 127.0.0.1 mongo_replica_3

to - etc/hosts

Didn't work on windows 10.

The setup -

#!/bin/bash

MONGODB_REPLICA_1=mongo_replica_1
MONGODB_REPLICA_2=mongo_replica_2
MONGODB_REPLICA_3=mongo_replica_3

echo "************ [ Waiting for startup ] **************" ${MONGODB_REPLICA_1}

until curl http://${MONGODB_REPLICA_1}:27017/serverStatus\?text\=1 2>&1 | grep uptime | head -1; do
  printf '.'
  sleep 1
done

echo "************ [ Startup completed ] **************" ${MONGODB_REPLICA_1}

mongosh --host ${MONGODB_REPLICA_1}:27017 <<EOF
var cfg = {
    "_id": "dbrs",
    "protocolVersion": 1,
    "version": 1,
    "members": [
        {
            "_id": 1,
            "host": "${MONGODB_REPLICA_1}:27017",
            "priority": 3
        },
        {
            "_id": 2,
            "host": "${MONGODB_REPLICA_2}:27018",
            "priority": 2
        },
        {
            "_id": 3,
            "host": "${MONGODB_REPLICA_3}:27019",
            "priority": 1
        }
    ],settings: {chainingAllowed: true}
};
rs.initiate(cfg, { force: true });
rs.reconfig(cfg, { force: true });
rs.secondaryOk();
db.getMongo().setReadPref('nearest');
db.getMongo().setSecondaryOk(); 
EOF 

When running docker ps - enter image description here

docker-compose.yaml file -

version: '3.8'

services:
    mongo_launcher:
        container_name: mongo_launcher
        image: mongo:5.0.9
        restart: on-failure
        networks:
            - mongo_network
        volumes:
            - ./docker/mongo-setup.sh:/scripts/mongo-setup.sh
        entrypoint: ['sh', '/scripts/mongo-setup.sh']
    mongo_replica_1:
        container_name: mongo_replica_1
        image: mongo:5.0.9
        ports:
            - 27017:27017
        restart: always
        entrypoint:
            [
                '/usr/bin/mongod',
                '--bind_ip_all',
                '--replSet',
                'dbrs',
                '--dbpath',
                '/data/db',
                '--port',
                '27017',
            ]
        volumes:
            - ./.volumes/mongo/replica1:/data/db
            - ./.volumes/mongo/replica1/configdb:/data/configdb
        networks:
            - mongo_network
    mongo_replica_2:
        container_name: mongo_replica_2
        image: mongo:5.0.9
        ports:
            - 27018:27018
        restart: always
        entrypoint:
            [
                '/usr/bin/mongod',
                '--bind_ip_all',
                '--replSet',
                'dbrs',
                '--dbpath',
                '/data/db',
                '--port',
                '27018',
            ]
        volumes:
            - ./.volumes/mongo/replica2:/data/db
            - ./.volumes/mongo/replica2/configdb:/data/configdb
        networks:
            - mongo_network
    mongo_replica_3:
        container_name: mongo_replica_3
        image: mongo:5.0.9
        ports:
            - 27019:27019
        restart: always
        entrypoint:
            [
                '/usr/bin/mongod',
                '--bind_ip_all',
                '--replSet',
                'dbrs',
                '--dbpath',
                '/data/db',
                '--port',
                '27019',
            ]
        volumes:
            - ./.volumes/mongo/replica3:/data/db
            - ./.volumes/mongo/replica3/configdb:/data/configdb
        networks:
            - mongo_network

networks:
    mongo_network:
        driver: bridge

.............................................................................................................................................

  • Please, be aware that none of the proposed addresses, `mongo_replica_x`, will be known by your machine unless you tell it how to find them. You mentioned you created entries like `127.0.0.1 mongo_replica_1` in your macOS `/etc/hosts` file. In windows, did you try editing `C:\Windows\system32\drivers\etc\hosts` as administrator? In addition, please, how are you running you bash file? – jccampanero Jul 11 '22 at 22:36
  • Can you provide the corresponding Dockerfile and/or `docker-compose.yml` ? – Marinos An Jul 12 '22 at 09:27
  • @jccampanero Yes I did and it didn't help. I'm running it with `pnpm exec`. @MarinosAn Added. – devedvdevdev Jul 12 '22 at 18:42
  • does `ping` from you mongo_launcher to `mongo_replica_1` or `mongo-replica-1` ends with success? – ofirule Jul 19 '22 at 08:25

0 Answers0