软件版本64位:
    $ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.0.tgz
    mongodb-linux-x86_64-rhel62-3.2.0.tgz
服务器3台:
    192.168.1.20    (master[PRIMARY])
    192.168.1.21    (slave[SECONDARY])
    192.168.1.22    (仲裁[ARBITER])
参考:
$ tar -zxvf mongodb-linux-x86_64-rhel62-3.2.0.tgz /opt
$ mv mongodb-linux-x86_64-rhel62-3.2.0 mongodb
$ mkdir -p /opt/mongodb/{conf,data,logs}   #解压后创建目录conf data logs
####################mongodb配置文件(/opt/mongodb/conf/mongodb.conf )########
#存放的数据文件目录
dbpath=/opt/mongodb/data
#日志文件目录
logpath=/opt/mongodb/logs/master.log
#加密文件,用户集群连接验证
#keyFile=/opt/mongodb/mongodb.key
#日志追加
logappend=true
#副本集名称
replSet=repset
#绑定
bind_ip=192.168.1.20
#端口号
port=27017
#启动用户名密码验证
#auth=true
#以守护进程的方式运行MongoDB。确保其稳定
fork=true
############################mongodb配置文件######################
#把配置好的mongodb复制到其他两台机器
$ scp -r /opt/mongodb root@172.29.1.21:/opt/
$ scp -r /opt/mongodb root@172.29.1.22:/opt/
$ vim /opt/mondogd/conf/mongodb.conf         #依次修改其他两台机器上配置文件绑定的ip
$ /opt/mongodb/bin/mongod -f /opt/mongodb/conf/mongodb.conf    #启动mongodb服务(3台上都执行)
#如果是32位,需要在配置文件加上,journal=true    storageEngine=mmapv1  oplogSize=128
$ /opt/mongodb/bin/mongo 192.168.1.20:27017        #随便选择一台机器连接mongod
> use admin        #切换到数据库admin(相当于mysql的mysql库)
 #定义副本集配置,优先级priority值高的为主节点,_id的值repset一定要和配置文件中定义的replSet的值相同.对于仲裁点一定要加上arbiterOnly:true,指定只做仲裁节点
> config = {_id: "repset", members: [{_id:0,host:'192.168.1.20:27017',priority:2},{_id:1,host:'192.168.1.21:27017',priority:1},{_id:2,host:'192.168.1.22:27017',arbiterOnly:true}]}      
> rs.initiate(config)    #初始化副本集配置,会生成一些文件到data目录,,不能读写.ok是1就成功
> rs.status()    #查看副本集集群状态,"health" : 1代表服务器可用,"stateStr" : "PRIMARY"表名自己的身份是master
> rs.isMaster()    #查看本机是否是master
> rs.conf()    #显示了每个节点的健康状况,名称,启动的时间,节点的类型等。查看当前副本集的配置表
 
#连接master写入数据,看slave是否能查到,测试slave是否可以写数据(不可以,会提示no master)
$ /opt/mongodb/bin/mongo 192.168.1.20:27017
repset:PRIMARY>  db.users.insert({username: "tangwan1", age: 22})
WriteResult({ "nInserted" : 1 })
repset:SECONDARY> show collections
[thread1] Error: listCollections failed: { "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 }
#mongodb默认是从主节点读写数据的,副本节点上不允许读,需要设置副本节点可以读.
repset:SECONDARY> rs.slaveOk()
repset:SECONDARY> show collections
users
repset:SECONDARY> db.users.find()
{ "_id" : ObjectId("572ed5c9d7ef239c6064117f"), "username" : "visionwang", "age" : 26 }
 
#杀掉master,看slave是否切换为master
$ kill -9 `ps -ef|grep mongod|grep -v grep|awk '{print $2}'`
#此时再连接原来的slave(如果已经连着,直接enter.....),看到repset:SECONDARY> 变成repset:PRIMARY> 
repset:PRIMARY>  db.users.insert({username: "tangwan2", age: 22})
repset:PRIMARY> db.users.insert({username: "tangwan2", age: 22})
WriteResult({ "nInserted" : 1 })
repset:PRIMARY> db.users.find()
{ "_id" : ObjectId("572ed5c9d7ef239c6064117f"), "username" : "tangwan1", "age" : 22 }
{ "_id" : ObjectId("5752973d814ab9878378c719"), "username" : "tangwan2", "age" : 22 }
#再启动刚杀掉的master,可以看到它成了slave了
$ /opt/mongodb/bin/mongod -f /opt/mongodb/conf/mongodb.conf
$ /opt/mongodb/bin/mongo 192.168.1.21:27017
#检查它死后那段时间数据是否也复制过来了
repset:SECONDARY> db.users.find()
 
#用openssl生成密钥,用于集群间机器的信任,为心跳连接加密
$ yum -y install openssl
$ openssl rand -base64 741 > mongodb.key
 
#给mongodb添加用户和密码
erp;#数据库名
erp_user#用户名
zgtx123.com#密码
##创建用户前需要修改currentVersion,认证级别
repset:PRIMARY>  db.system.version.find()
repset:PRIMARY>  db.system.version.update({'_id':'authSchema'},{$set:{'currentVersion':3}})
repset:PRIMARY>  db.system.version.find()
##查看,创建,删除用户
repset:PRIMARY> use admin
repset:PRIMARY> db.system.users.find()
repset:PRIMARY> db.system.users.remove({user:"erp_user"})
repset:PRIMARY> use erp
switched to db erp
repset:PRIMARY> db.createUser( {"user":"erp_user","pwd":"zgtx123.com","roles":[{role:"readWrite",db:"erp"}]},{w:"majority",wtimeout:5000})
Successfully added user: {
"user" : "erp_user",
"roles" : [
{
"role" : "readWrite",
"db" : "erp"
}
]
}
##修改3个配置文件auth=true;重启mongodb
$ kill -9 `ps -ef|grep mongod|grep -v grep|awk '{print $2}'`
$ /opt/mongodb/bin/mongod -f /opt/mongodb/conf/mongodb.conf
$ /opt/mongodb/bin/mongo 192.168.1.20:27017/erp -u erp_user -p#输入密码
> db.auth("erp_user", "zgtx123.com")     #也是一种认证方式
 
 
 
 
 
 
 
 
 
 
 

最新文章

  1. disabled="true" 的标签元素不可提交
  2. Glide 图片加载库
  3. Jquery LigerUI框架学习(二)之Tree于Tab标签实现iframe功能
  4. Centos 6.4 安装elasticsearch+kibana
  5. SharePoint 学习记事(三)
  6. Android开发之”再按一次退出程序“的实现
  7. [转] 怎样在Ubuntu 14.04中搭建gitolite git服务器
  8. Android项目实战--手机卫士20--拿到已经安装了的程序以及程序管理主界面
  9. 转:初学者,手工注入测试方法小节 (出处:: 51Testing软件测试网--jie)
  10. Gradient Descent 和 Stochastic Gradient Descent(随机梯度下降法)
  11. HDU 6153 拓展KMP (2017CCPC)
  12. shell脚本基础1 概述及变量
  13. ZOJ-2913 Bus Pass---BFS进阶版
  14. MachineLearningOnCoursera
  15. SQL Server - ISNULL
  16. c# txt代码转换成HTML格式
  17. Django - Python3 配置 MySQL
  18. Django从MySQL数据库生成model
  19. Python 3 的安装
  20. es 模板

热门文章

  1. Java学习——HashMap
  2. Linuxb笔记
  3. 使用MSMQ 远程队列
  4. tftp 限制ip 限制ip段 或者多个ip段访问
  5. windows下搭建nginx+php+mysql环境
  6. kali 更改root密码
  7. android adb命令
  8. Media Queries使用方法
  9. Markdown 是什么
  10. 如何写出优雅的Python