1. 安装虚拟机 安装linux系统
2. 安装MongoDB
(1) 下载地址 : https://www.mongodb.com/download-center#community
(2) 在 /usr/local 中解压 : tar -xzvf mongodb-*****.tgz
重命名解压包 : mv mongodb-**** mongodb
(3) 创建目录 : mkdir -p /data/db
(4) 设置环境变量 : vi /etc/profile : 最后一行 : export PATH=/usr/local/mongodb/bin:$PATH
3. 启动 : mongo --nodb
4. 创建副本集 : replicaSet = new ReplSetTest({"nodes":3}) // 创建3个副本集成员 可以看到新创建的三个端口
如 20000 20001 20002
5. 启动副本集 : replicaSet.startSet()
6. 初始化副本集 : replicaSet.initiate() //
7. 启动后切换另一个命令窗口,开启MongoDB : mongo --nodb
8. 连接一个端口创建mongo实例 : conn1 = new Mongo("localhost:20000")
9. 进入数据库 : primaryDB = conn1.getDB("test")
10. 看是否主节点 : primaryDB.isMaster()
11. 如果显示 : {"primary" : true} // 说明是主节点 如果没有文档中也会显示哪个接口为主节点 以同样的方式连接就行
12. 如果是主节点可以用js进行写操作 : primaryDB.coll.insert({"name" : "hbw"})
13. 可以读取写好的信息 : primaryDB.coll.find()
14. 重新连接一个从节点 :
conn2 = new Mongo("localhost:20001")
secondaryDB = conn2.getDB("test")
读取信息 : secondaryDB.coll.find()
如无法读取可以先设置 : conn2.setSlaveOk()
然后就可以读取到主节点再coll文档中插入的信息了
但是如果在从节点执行插入操作,会报错,可以查询报错信息 : secondaryDB.runCommand({"getLastError":1})
说明只有主节点拥有写权限,而从节点只有查权限
15. 但是如果将主节点关闭或是某种原因导致主节点不可用,就会根据大多数(超过一半)的原则选取新的主节点,可以参照上面的 步骤查询新的主节点,关闭主节点的命令为 : primaryDB.adminCommand({"shutdown" : 1})