962148150 发表于 2018-10-25 10:43:09

mongodb3.X 副本集(集群)添加用户名认证

  折腾好几天这个,由于工作问题,时间也比较散,今天终于抽空将其记录下来了,并且本地测试通过了得好了,废话不多说,下面就开始了,
  首先需要搭建mongodb的副本集,再次,我的环境如下:
  centos 6.5
  mongodb 3.2.11
  mongdb下载地址:https://www.mongodb.com/download-center?jmp=nav#community
  在此我们需要配置三个mong单节点,然后将其结合组成副本集,
  安装路径/usr/local/mongd
  三个mongdb分别占用端口2701727018 27019
  在/usr/local/mongd下面创建四个数据目录和一个配置目录以及一个日志目录
  mkdir/usr/local/mongd/data{1..4}
  mkdir /usr/local/mongd/log
  mkdir /usr/local/mongd/etc
  三个mongodb的配置文件分别如下所示:配置文件的路径: /usr/local/mongd/etc/
  第一个mongodb的配置文件:mongod.conf
  port=27017
  dbpath=/usr/local/mongod/data1/
  logpath=/usr/local/mongod/log/mongodb.log
  pidfilepath=/usr/local/mongod//mongod.pid
  fork=true
  logappend=true
  shardsvr=true
  directoryperdb=true
  #auth=true
  #replSet=zpf
  #oplogSize=100
  #keyFile=/usr/local/mongod/etc/mongo.pass         ###这个文件后边需要手动生成,路径和文件名都是自定义的
  第二个mongodb的配置文件:mongod2.conf 内容如下:
  port=27018
  dbpath=/usr/local/mongod/data2/
  logpath=/usr/local/mongod/log/mongodb.log
  pidfilepath=/usr/local/mongod//mongod.pid
  fork=true
  logappend=true
  shardsvr=true
  directoryperdb=true
  #auth=true
  replSet=zpf
  oplogSize=100
  keyFile=/usr/local/mongod/etc/mongo.pass         ###三个配置文件中这个文件需要一致
  第三个mongodb的配置文件:mongod3.conf,内容如下:
  port=27019
  dbpath=/usr/local/mongod/data3/
  logpath=/usr/local/mongod/log/mongodb3.log
  pidfilepath=/usr/local/mongod//mongod3.pid
  fork=true
  logappend=true
  shardsvr=true
  directoryperdb=true
  #auth=true
  replSet=zpf
  oplogSize=100
  keyFile=/usr/local/mongod/etc/mongo.pass          ###三个配置文件中这个文件需要一致
  首先启动一个节点,即先启动第一个mongodb,27017端口的那个,因为再次我想用其做primary节点
  mongod--config /usr/local/mongod/etc/mongod.conf
  启动后,连接节点,在里面添加用户,在此 我添加了一个root角色的用户(权限最高的用户了),
  添加用的方法如下:
  use admin
  db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})
  由于我的是mongodb3.2版本的所以添加用户需要用上述的操作
  用户添加完成后,关闭mongodb,然后修改mongodb的配置文件,只修改第一个的配置文件就行,因为再次,我们就启动了第一个mongodb数据库,
  修改的配置如下所示:
  port=27017
  dbpath=/usr/local/mongod/data1/
  logpath=/usr/local/mongod/log/mongodb.log
  pidfilepath=/usr/local/mongod//mongod.pid
  fork=true
  logappend=true
  shardsvr=true
  directoryperdb=true
  auth=true                ###去掉注释
  replSet=zpf            ###去掉注释
  oplogSize=100         ###去掉注释
  keyFile=/usr/local/mongod/etc/mongo.pass      ###去掉注释
  然后生成一个keyFile,副本集之间通过此文件来进行验证,
  opensslrand-base64    521 > /usr/local/mongod/etc/mongo.pass      ###这个名字随意定义,但是配置文件中也需要制定这个文件的,在此我的是同一台机器,所以,路径相同,如果是不同机器之间的做副本集,则需要将此文件复制到不同的机器上去
  创建完成后,还需要修改此文件的权限为600,只有拥有者有权限,其余的组和其他用户没有任何的权限
  chmod600 /usr/local/mongod/etc/mongo.pass
  修改完成后,启动mongdb数据库即可
  这次需要三个数据都启动,
  然后登陆数据库进行操作就行,但是,切记需要先验证账号和密码才可以
  # mongo
  MongoDB shell version: 3.2.11
  connecting to: test
  zpf:PRIMARY> use admin
  switched to db admin
  zpf:PRIMARY> db.auth("admin","123456")
  1
  下边就是进行详细的副本集的配置了,可以参考另一篇文档,副本集配置完成后,链接这三个的任何一都需要先验证账号和密码才可以进行操作,副本集的配置操作,参看另一篇文档:mongod 集群分片

页: [1]
查看完整版本: mongodb3.X 副本集(集群)添加用户名认证