MongoDB分布式集群部署(复制集)

搭建复制集

创建数据目录
mkdir -p /mongod/data{1,2,3}
准备配置文件

正常情况下复制集的每个mongod进程应该位于不同的服务器。我们现在在一台机器上运行3个进程,因此要为它们各自配置:

  • 不同的端口。示例中将使用28017/28018/28019.
  • 不同的数据目录。示例中将使用:
    • /mongod/data1
    • /mongod/data2
    • /mongod/data3
  • 不同日志文件路径。示例中将使用:
    • /mongod/data1/mongod.log
    • /mongod/data2/mongod.log
    • /mongod/data3/mongod.log

这些配置文件标准格式如下,请修改必要的参数完成3个实例各自的配置文件:

# /usr/local/mongodb/config/mongod28017.conf
systemLog:
  destination: file
  path: /mongod/data1   # 日志文件路径
  logAppend: true
  
storage:
  dbPath: /mongod/data1/mongod.log   # 数据目录
  
net:
  bindIp: 0.0.0.0
  port: 28017   # 端口
  
replication:
  replSetName: chengRs0
  
processManagement:
  fork: true

security:
  authorization: enabled
  keyFile: /usr/local/mongodb/config/.keyfile
执行进程
./mongod -f /mongod/data1/mongod.conf
./mongod -f /mongod/data2/mongod.conf
./mongod -f /mongod/data3/mongod.conf
配置复制集

进入mongo shell:

./mongo --port 28017
初始化复制集:
rs.initiate({
    _id: "chengRs0",
    members: [{
        _id: 0,
        host: "{ip}:28017"
    },{
        _id: 1,
        host: "{ip}:28018"
    },{
        _id: 2,
        host: "{ip}:28019"
    }]
})
查看复制集状态:
rs.status()
调整复制集配置
var conf = rs.conf()
// 将0号节点的优先级调整为10
conf.members[0].priority = 10;
// 将1号节点调整为hidden节点
conf.members[1].hidden = true;
// hidden节点必须配置{priority: 0}
conf.members[1].priority = 0;
// 应用以上调整
rs.reconfig(conf);
安全校验
创建keyFile文件
## keyfile base64 编码
vim /usr/local/mongodb/config/.keyfile

## 设置权限600 
chmod 600 /usr/local/mongodb/config/.keyfile
创建管理员账号
> use admin
> db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:'admin'}]})
关闭所有服务,使用新的配置文件重启
./mongo --port 28017

use admin
db.auth("admin","123456")   #认证,返回1表示成功

你可能感兴趣的:(mongodb,数据库,nosql)