[App] MongoDB 主从配置

 

master

192.168.1.153

slave

192.168.1.154

os

rhel 7.2

 

1、主从安装

# cd /usr/local/src

# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.4.tgz

# tar -zxf mongodb-linux-x86_64-rhel70-3.2.4.tgz

# mv mongodb-linux-x86_64-rhel70-3.2.4 /usr/local/mongodb

# chmod +x /usr/local/mongodb/bin/*

# vi /etc/profile

export PATH=/usr/local/mongodb/bin:$PATH

# source /etc/profile

# cd /usr/local/mongodb/

# mkdir -p data/mongodb

# mkdir -p data/logs

# vi data/mongodb.conf     # master 配置

port=27017

dbpath=/usr/local/mongodb/data/mongodb/

logpath=/usr/local/mongodb/data/logs/mongodb.log

fork=true

logappend=true

directoryperdb=true

master=true

oplogSize=2048

 

# vi data/mongodb.conf     # slave 配置

port=27017

dbpath=/usr/local/mongodb/data/mongodb/

logpath=/usr/local/mongodb/data/logs/mongodb.log

fork=true

logappend=true

directoryperdb=true

slave=true

source=192.168.1.153:27017

autoresync=true

slavedelay=5

oplogSize=2048

 

 

# mongod --config /usr/local/mongodb/data/mongodb.conf

about to fork child process, waiting until server is ready for connections.

forked process: 17802

child process started successfully, parent exiting

 

# vi /etc/rc.local

mongod --config /usr/local/mongodb/data/mongodb.conf

 

 

2、测试

# 主库新增记录

# mongo

> usetest

> db.blog.save({title:"new article"})


# 从库查询

# mongo

> use  test

> db.blog.find()  

Error: error: { "OK" : 0 , "errmsg" : "notmaster and slaveok=false", "code" : 13435}

解决:

有两种方法实现从机的查询:

第一种方法:db.getMongo().setSlaveOk();

第二种方法:rs.slaveOk();

但是这种方式有一个缺点就是,下次再通过mongo进入实例的时候,查询仍然会报错,为此可以通过下列方式

vi ~/.mongorc.js

增加一行rs.slaveOk();

这样的话以后每次通过mongo命令进入都可以查询了

 

来自 <https://zhidao.baidu.com/question/1821198297277350388.html>

 

 

正常返回:

"_id" : ObjectId("55595022e26fd5794a58bdd3"), "title" : "new article" } 

你可能感兴趣的:(【开源服务】,----,【数据库】,--------,MongoDB)