mongodb配置replica set 主从

简单点,单机不同端口两个节点,(官方推荐三个及以上的单数)一主一从:

mongod1.conf

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /server/mongodb/data1
net:
  bindIp: 127.0.0.1
  port: 40000
replication:
   replSetName: rs-demo

 mongod2.conf

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /server/mongodb/data2
net:
  bindIp: 127.0.0.1
  port: 40001
replication:
   replSetName: rs-demo

分别启动两个mongd实例,

mongod --config mongod1.conf

mongod --config mongod2.conf

再开始第三个终端窗口,进入mongo客户端

mongo --port 40000

执行 rs.initiate()命令初始化replica set

> rs.initiate()
{
    "info2" : "no configuration specified. Using a default configuration for the set",
    "me" : "MacBook-Pro-Work.local:40000",
    "ok" : 1
}

成功,添加了MacBook-Pro-Work.local:40000节点,

执行rs.add命令添加另一节点:

rs-demo:SECONDARY> rs.add('MacBook-Pro-Work.local:40001')
{ "ok" : 1 }

搭建完成

进入主节点:

➜  ~ mongo --port 40001
MongoDB shell version: 3.2.22
connecting to: 127.0.0.1:40001/test
Server has startup warnings:
2020-11-26T00:59:56.082+0800 I CONTROL  [initandlisten]
2020-11-26T00:59:56.082+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
rs-demo:PRIMARY>

进入从节点:

➜  mongodb mongo --port 40000
MongoDB shell version: 3.2.22
connecting to: 127.0.0.1:40000/test
Server has startup warnings:
2020-11-26T00:59:57.602+0800 I CONTROL  [initandlisten]
2020-11-26T00:59:57.602+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
rs-demo:SECONDARY>

注意此时从节点不能读数据,

rs-demo:SECONDARY> show dbs;
2020-11-26T01:02:39.306+0800 E QUERY    [thread1] Error: listDatabases failed:{ "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 } :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:781:19
shellHelper@src/mongo/shell/utils.js:671:15
@(shellhelp2):1:1

执行 rs.slaveOk()命令就可以读了

rs-demo:SECONDARY> rs.slaveOk()

配置mongoengine连接

from mongoengine import connect
connect = connect(host='mongodb://MacBook-Pro-Work.local:40000,MacBook-Pro-Work.local:40001/tumblelog?replicaSet=rs-demo')

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值