Running replication on Mongo DB issues

14,793

Solution 1

When starting the mongod, you have to specify the other hosts, participating iny our replication set, eg. when starting myhost1, you have to add the following argument:

--replSet cluster1/myhost2:27018,myhost3:27019

Just something I noticed, /data is directly under root /, did you checked permission rights? Better change to something like ~/temp/something while testing to avoid pitfalls.

Solution 2

First, you are getting warning regarding host configured in config. Are you sure DNS is correct, if not resolve them in /etc/hosts File

   127.0.0.1     myhost1:27017 
   127.0.0.1     myhost2:27018
   127.0.0.1     myhost3:27019 

Also i think you have forced closed mongod process, kill all that process, that will remove this error Error shell/mongo.js:86 if it didn't work . You might have to remove this file data/mongodb.lock

Share:
14,793
hungry fish
Author by

hungry fish

RoR , Android developer, Javascript, HTML 5

Updated on June 11, 2022

Comments

  • hungry fish
    hungry fish almost 2 years

    I am new to mongo and am trying the code example given in the tutorail on Mongo site but am facing the issue below. According to the tutorial it should be fairly simple. But i am getting --replSet error even though I have given it while creating a host. I am developing on a standalone machine with fedora linux. Also can some one tell me how do I reset/remove the host once they are assigned.

    [root@localhost data]#  mongod --replSet cluster1 --port 27019 --dbpath /data/r2
    Tue Mar 13 18:40:40 
    Tue Mar 13 18:40:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
    Tue Mar 13 18:40:40 
    Tue Mar 13 18:40:40 [initandlisten] MongoDB starting : pid=9849 port=27019 dbpath=/data/r2 32-bit host=localhost.localdomain
    Tue Mar 13 18:40:40 [initandlisten] 
    Tue Mar 13 18:40:40 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
    Tue Mar 13 18:40:40 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
    Tue Mar 13 18:40:40 [initandlisten] **       with --journal, the limit is lower
    Tue Mar 13 18:40:40 [initandlisten] 
    Tue Mar 13 18:40:40 [initandlisten] db version v2.0.3, pdfile version 4.5
    Tue Mar 13 18:40:40 [initandlisten] git version: 05bb8aa793660af8fce7e36b510ad48c27439697
    Tue Mar 13 18:40:40 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_41
    Tue Mar 13 18:40:40 [initandlisten] options: { dbpath: "/data/r2", port: 27019, replSet: "cluster1" }
    Tue Mar 13 18:40:40 [initandlisten] waiting for connections on port 27019
    Tue Mar 13 18:40:40 [websvr] admin web console waiting for connections on port 28019
    Tue Mar 13 18:40:40 [initandlisten] connection accepted from 127.0.0.1:56898 #1
    Tue Mar 13 18:40:40 [rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG)
    Tue Mar 13 18:40:40 [rsStart] replSet info you may need to run replSetInitiate -- rs.initiate() in the shell -- if that is not already done
    Tue Mar 13 18:40:50 [rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG)
    ^CTue Mar 13 18:41:00 [rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG)
    Tue Mar 13 18:41:00 got kill or ctrl c or hup signal 2 (Interrupt), will terminate after current cmd ends
    Tue Mar 13 18:41:00 [interruptThread] now exiting
    Tue Mar 13 18:41:00 dbexit: 
    Tue Mar 13 18:41:00 [interruptThread] shutdown: going to close listening sockets...
    Tue Mar 13 18:41:00 [interruptThread] closing listening socket: 6
    Tue Mar 13 18:41:00 [interruptThread] closing listening socket: 8
    Tue Mar 13 18:41:00 [interruptThread] closing listening socket: 9
    Tue Mar 13 18:41:00 [interruptThread] removing socket file: /tmp/mongodb-27019.sock
    Tue Mar 13 18:41:00 [interruptThread] shutdown: going to flush diaglog...
    Tue Mar 13 18:41:00 [interruptThread] shutdown: going to close sockets...
    Tue Mar 13 18:41:00 [interruptThread] shutdown: waiting for fs preallocator...
    Tue Mar 13 18:41:00 [interruptThread] shutdown: closing all files...
    Tue Mar 13 18:41:00 [interruptThread] closeAllFiles() finished
    Tue Mar 13 18:41:00 [interruptThread] shutdown: removing fs lock...
    Tue Mar 13 18:41:00 [conn1] end connection 127.0.0.1:56898
    Tue Mar 13 18:41:00 dbexit: really exiting now
    [root@localhost data]# mongo myhost:27017
    MongoDB shell version: 2.0.3
    connecting to: myhost:27017/test
    Tue Mar 13 18:41:13 getaddrinfo("myhost") failed: Name or service not known
    Tue Mar 13 18:41:13 Error shell/mongo.js:86
    exception: connect failed
    [root@localhost data]# mongo localhost:27017
    MongoDB shell version: 2.0.3
    connecting to: localhost:27017/test
    > 
    > 
    > config = {_id: 'cluster1', members: [
    ...                           {_id: 0, host: 'myhost1:27017'},
    ...                           {_id: 1, host: 'myhost2:27018'},
    ...                           {_id: 2, host: 'myhost3:27019'}]
    ... }
    {
        "_id" : "cluster1",
        "members" : [
            {
                "_id" : 0,
                "host" : "myhost1:27017"
            },
            {
                "_id" : 1,
                "host" : "myhost2:27018"
            },
            {
                "_id" : 2,
                "host" : "myhost3:27019"
            }
        ]
    }
    > rs.initiate(config);
    { "errmsg" : "server is not running with --replSet", "ok" : 0 }
    > exit
    bye
    

    Thanks

  • dalanmiller
    dalanmiller over 11 years
    Yeah but from what I've just tried out, you can set only --replSet repl_name without giving any other hosts. You can then set the hosts once you connect into the mongod instance.