第一次是用一台机器起3个mongod组成replica set,配置如下:
./mongod --shardsvr --replSet shard1 --dbpath /data/shard1/r1 --port 10011 --logpath /data/log/shard1_1.log --logappend --auth --fork
./mongod --shardsvr --replSet shard1 --dbpath /data/shard1/r2 --port 10012 --logpath /data/log/shard1_2.log --logappend --auth --fork
./mongod --shardsvr --replSet shard1 --dbpath /data/shard1/r3 --port 10013 --logpath /data/log/shard1_3.log --logappend --auth --fork
./mongo -port 10011
> config={_id: 'shard1', members: [{_id: 0, host: '192.168.200.37:10011'},{_id: 1, host: '192.168.200.37:10012'},{_id: 2, host: '192.168.200.37:10013'}]}
> rs.initiate(config)
{
"ok" : 0,
"errmsg" : "couldn't initiate : need all members up to initiate, not ok : 192.168.200.37:10011"
}
第二次用两台机器2个mongod组成replica set,配置如下:
192.168.200.37上执行
./mongod --shardsvr --replSet shard1 --dbpath /data/mongo/shard1/r1 --port 10011 --logpath /data/mongo/log/shard1_1.log --logappend --auth --fork
192.168.200.39上执行
./mongod --shardsvr --replSet shard1 --dbpath /data1/mongo/shard1/r1 --port 10011 --logpath /data1/mongo/log/shard1_1.log --logappend --auth --fork
./mongo -port 10011
>config={_id: 'shard1', members: [{_id: 0, host: '192.168.200.37:10011'},{_id: 1, host: '192.168.200.39:10011'}]}
> rs.initiate(config)
{
"ok" : 0,
"errmsg" : "couldn't initiate : need all members up to initiate, not ok : 192.168.200.39:10011"
}
/sbin/service iptables stop后也不行,求高手指点!
4 个解决方案
#1
你运行初始化命令的那台机器能用mongo shell连接上复制集里所有的机器吗?比如对复制集1,在要运行初始化命令的机器上运行下面命令试试:
mongo 192.168.200.37:10011
mongo 192.168.200.37:10012
mongo 192.168.200.37:10013
如果不行的话,看看错误信息和对应的mongod的日志
mongo 192.168.200.37:10011
mongo 192.168.200.37:10012
mongo 192.168.200.37:10013
如果不行的话,看看错误信息和对应的mongod的日志
#2
感谢u011235983的回答,问题已经解决了,问题出在keyFile上,只要加上keyFile就可以了。我看网上有很多实例没有加keyFile也行,可能是不同版本的问题,我用的mongodb版本是2.4.6。
#3
keyfile只是一个验证的手段,当然,在replica set里面的keyfile必须要一致即可。
#4
是在mongod --keyFile path 这样么?
为什么我mongod反而运行出错了呢。。
#1
你运行初始化命令的那台机器能用mongo shell连接上复制集里所有的机器吗?比如对复制集1,在要运行初始化命令的机器上运行下面命令试试:
mongo 192.168.200.37:10011
mongo 192.168.200.37:10012
mongo 192.168.200.37:10013
如果不行的话,看看错误信息和对应的mongod的日志
mongo 192.168.200.37:10011
mongo 192.168.200.37:10012
mongo 192.168.200.37:10013
如果不行的话,看看错误信息和对应的mongod的日志
#2
感谢u011235983的回答,问题已经解决了,问题出在keyFile上,只要加上keyFile就可以了。我看网上有很多实例没有加keyFile也行,可能是不同版本的问题,我用的mongodb版本是2.4.6。
#3
keyfile只是一个验证的手段,当然,在replica set里面的keyfile必须要一致即可。
#4
是在mongod --keyFile path 这样么?
为什么我mongod反而运行出错了呢。。