I am trying to set up a MongoDB replica set on Digital Ocean.

I edited /etc/mongo.conf and specified replica set id:


and did not change anything else.

I did rs.initiate() on the first instance. Here is my config:

"_id" : "rs1",
"version" : 2,
"members" : [
        "_id" : 1,
        "host" : "localhost:27017",
        "arbiterOnly" : false,
        "buildIndexes" : true,
        "hidden" : false,
        "priority" : 1,
        "tags" : {

        "slaveDelay" : 0,
        "votes" : 1
"settings" : {
    "chainingAllowed" : true,
    "heartbeatTimeoutSecs" : 10,
    "getLastErrorModes" : {

    "getLastErrorDefaults" : {
        "w" : 1,
        "wtimeout" : 0


Now, I want to add two more instances, but I see the error:

"ok" : 0,
"errmsg" : "Either all host names in a replica set configuration must be localhost references, or none must be; found 1 out of 2",
"code" : 103


How can I change the host to the server's ip address? If I try reconfig I get:

"ok" : 0,
"errmsg" : "No host described in new configuration 3 for replica set rs1 maps to this node",
"code" : 103


/etc/hostname contents:


/etc/hosts contents:

# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
#     /etc/cloud/cloud.cfg or cloud-config from user-data mongodb-1 mongodb-1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
  • As @Markus W Mahlberg suggested I changed bind ip option. I changed it to - I know that was not a good idea, but it works and ok for testing
    – Nodari L
    Sep 24, 2015 at 15:03

1 Answer 1


The problem is clearly stated: the first replica set member is bound to localhost.

Since with this name the other replica set members could not connect to this instance, you can only have other replica set members on the same host (but a different port for obvious reasons).

Chances are that the MongoDB instances at DO are bound to localhost by default. You need to bind them to a different IP address using the net.bindIp configuration option. Please keep in mind that this makes you MongoDB instance accessible to everybody being able to connect to the chosen port. You should enable authentication if a MongoDB instance is bound to a different IP than localhost.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.