user3645188
user3645188

Reputation: 135

MongoDB server is not running with replset

I do a MongoDB homework and follow the steps, but I faced the problem " server is not running with replset"

I do the step is :

`"start mongod --replSet m101 --logpath 1.log --dbpath \data\rs1 --port 27017 --smallfiles --oplogSize 64
start mongod --replSet m101 --logpath 2.log --dbpath \data\rs2 --port 27018 --smallfiles --oplogSize 64
start mongod --replSet m101 --logpath 3.log --dbpath \data\rs3 --port 27019 --smallfiles --oplogSize 64

Now connect to a mongo shell and make sure it comes up.

mongo --port 27017

Now you will create the replica set. Type the following commands into the mongo shell:

config = { _id: "m101", members:[`
          { _id : 0, host : "localhost:27017"},
          { _id : 1, host : "localhost:27018"},
          { _id : 2, host : "localhost:27019"} ]
};
rs.initiate(config);"

I do not know where is the problem, someone said the problem maybe is another mongod is running. But I have not any other mongod running in the same time.

Thank you!

Upvotes: 11

Views: 23502

Answers (3)

Sohail Bukhari
Sohail Bukhari

Reputation: 41

For MacOS Homebrew setup & default configuration

  1. Edit default configuration mongodb file nano /opt/homebrew/etc/mongod.conf

  2. Insert the following piece of code

replication:
       replSetName: "rs0"
  1. Save and restart the mongodb service brew services restart [email protected]
  2. Exec the following command in mongosh shell rs.initiate()
$ mongosh
> use admin
admin> rs.initiate()

success response:

{
  info2: 'no configuration specified. Using a default configuration for the set',
  me: '127.0.0.1:27017',
  ok: 1
}

Upvotes: 4

Jayme Tosi Neto
Jayme Tosi Neto

Reputation: 1239

It happened the same to me as well. The problem was that I have runned mongod without any parameters before I started launching the nodes. First kill all the mongo, mongod and mongos instances to guarantee the environment is clear.

ps -ef | grep -i 'mongo'
sudo service mongod stop

The problem cause is simple. The default port for mongod and mongos is 27017. So, what happened to me was that the first replica node was never created. The following command was connecting me to a default mongod instance:

mongo --port 27017

I hope this solves your problem. ;)

Upvotes: 8

wdberkeley
wdberkeley

Reputation: 11671

Check what command line options the mongod you are connected to in the shell is running with:

> use admin
switched to db admin
> db.runCommand("getCmdLineOpts")
{
    "argv" : [
        "mongod",
        "--dbpath",
        "/data/db",
        "--replSet",
        "rs0"
    ],
    "parsed" : {
        "replication" : {
            "replSet" : "rs0"
        },
        "storage" : {
            "dbPath" : "/data/db"
        }
    },
    "ok" : 1
}

Do you see the replSet option?

You can also try a different way of initiating the replica set. Instead of typing in the configuration and passing it to rs.initiate(), just run rs.initiate(). It will set up default config with one member- the server you are connected to in the shell. Then you can add the other two servers. See the tutorial for more information.

Upvotes: 5

Related Questions