源码安装mongodb
安装前需要时间同步。

  1. ntpdate time1.aliyun.com

1.去官方网站下载源码包。

  1. curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.10.tgz

2.解压源码包

  1. tar zxf mongodb-linux-x86_64-rhel62-3.2.10.tgz
  2. mv mongodb-linux-x86_64-rhel62-3.2.10 /usr/local/mongodb-3.2.10

3.创建配置文件

  1. mkdir /data/mongo/{data,logs,conf} -p

主配置文件

  1. dbpath=/data/mongo/data
  2. port=20000
  3. bind_ip=192.168.56.4
  4. master=true
  5. logpath=/data/mongo/logs/mongodb.log
  6. logappend=true
  7. fork=true
  8. maxConns=5000
  9. noauth=true
  10. httpinterface=true
  11. rest=false

从配置文件

  1. dbpath=/data/mongo/data
  2. port=20001
  3. bind_ip=192.168.56.6
  4. source=192.168.56.4:20000
  5. slave=true
  6. logpath=/data/mongo/logs/mongodb.log
  7. logappend=true
  8. fork=true
  9. maxConns=5000
  10. auth=true
  11. httpinterface=true
  12. rest=false
  13. autoresync=true
  14. fastsync=true

4.启动mongodb
主启动

  1. /usr/local/mongodb-3.2.10/bin/mongod -f /data/mongo/conf/mongo-master.conf

从启动

  1. /usr/local/mongodb-3.2.10/bin/mongod -f /data/mongo/conf/slave.conf

如果需要多实例的mongodb需要注意的是,所以需要使用numactl启动mongod,numactl的作用是让操作系统识别不同的mongod以便进行管理,避免造成冲突。
停止mongo的方法

  1. /usr/local/mongodb-3.2.10/bin/mongod --shutdown --dbpath /data/mongo/data/

5.主从
在配置文件中已经配好主从参数了。
进入主写数据进行测试

  1. /usr/local/mongodb-3.2.10/bin/mongo 192.168.56.4:20000
  1. > use test
  2. switched to db test
  3. > db.test.save({a:1})
  4. WriteResult({ "nInserted" : 1 })
  5. > db.test.find()
  6. { "_id" : ObjectId("580c216b23078042f5e8570e"), "a" : 1 }

从查看数据

  1. /usr/local/mongodb-3.2.10/bin/mongo 192.168.56.6:20001
  1. > show dbs;
  2. 2016-10-23T13:50:06.156+0800 E QUERY [thread1] Error: listDatabases failed:{ "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 } :
  3. _getErrorWithCode@src/mongo/shell/utils.js:25:13
  4. Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
  5. shellHelper.show@src/mongo/shell/utils.js:761:19
  6. shellHelper@src/mongo/shell/utils.js:651:15
  7. @(shellhelp2):1:1
  8. > rs.slaveOk()
  9. > show dbs;
  10. local 0.000GB
  11. test 0.000GB
  12. > use test;
  13. switched to db test
  14. > db.test.find();
  15. { "_id" : ObjectId("580c360d3f7d15cb1e4ff7dc"), "a" : 1 }

可以登录http://192.168.56.6:21001 进行查看日志和主从效果。