• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >MongoDB > Mongo集群搭建

Mongo集群搭建

作者:williamxww1的专栏 字体:[增加 减小] 来源:互联网 时间:2017-09-02

williamxww1的专栏通过本文主要向大家介绍了mongodb,集群,windows等相关知识,希望本文的分享对您有所帮助

单节点安装

  1. 复制文件到目录D:\CFile\MongoDB

  2. 注册windows服务(可能需要以管理员运行cmd)

    新建D:\CFile\MongoDB\data D:\CFile\MongoDB\log\mongo.log

> mongod --dbpath "D:\CFile\MongoDB\data" --logpath "D:\CFile\MongoDB\log\mongo.log" --install --serviceName "MongoDB"
> net start mongodb
> net stop mongodb
> mongod --remove --serviceName "MongoDB"
> mongod --auth --dbpath "D:\CFile\MongoDB\data" --logpath "D:\CFile\MongoDB\log\mongo.log" --reinstall --serviceName "MongoDB"
  1. 初始化
> mongo 127.0.0.1:27017
> use admin
> db.createUser(
  {
    user: "admin",
    pwd: "123456",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
  1. 用户权限管理
// 查看用户
> show users
> db.system.users.find()
> db.changeUserPassword("admin","123456");
> db.system.users.find();//查看用户
> db.system.users.remove({user:"admin"}); //删除用户

// 新增一个库test,用户xww对其有读写权限,注意上面admin只是有管理用户的权限
use test
db.createUser(
  {
    user: "xww",
    pwd: "xww",
    roles: [ { role: "readWrite", db: "test" }]
  }
)

// 收回权限
db.revokeRolesFromUser(
    "xww",
    [{ role: "readWrite", db: "test"}]
)
// 授予读权限
db.grantRolesToUser(
    "xww",
    [{ role: "read", db: "test" }]
)

// 增加超级用户
db.createUser({
    user: "admin",  
    pwd: "admin",
    roles:[{role: "root",db: "admin"}]
})
  1. CRUD
> show dbs;
> use test;
> db.onuPmReportLK.insert({
    "_id" : 3,
    "upSpeed" : 90.14,
    "cpuUsage" : 0.9,
    "temperature" : 9.0,
    "oId" : "10000-0-0-0-0"
});
> db.onuPmReportLK.find({_id:3},{cpuUsage:1, oId:1}).sort({cpuUsage:1});
> db.onuPmReportLK.remove({_id:3});
  1. aggregation & lookup
// 模拟from onuPmReport left join onu on onuPmReport.oId = onu._id where onuPmReport._id=4;
> db.getCollection('onuPmReport').aggregate([
         {
            $lookup:
             {
                 from:"onu",
                 localField:"oId",
                 foreignField:"_id",
                 as:"right"
             }
         },
         {$match:{"right.onuName":"ONU-1"}},
         {$sort:{"cpuUsage":1}},
         {$skip:0},
         {$limit:10}
     ],{allowDiskUse:true});

复制集群

#master.conf
port=27017
dbpath=../data
logpath=../log/mongodb.log
logappend=true
journal=true

master=true
> call mongod.exe -f ../conf/master.conf
#slave.conf
port=27018
dbpath=../data
logpath=../log/mongodb.log
logappend=true
journal=true

slave=true
source=127.0.0.1:27017
> call mongod.exe -f ../conf/slave.conf

3.0之后采用yaml方式配置

# config in yaml
systemLog:
   destination: file
   quiet: true
   path: "../log/mongodb.log"
   logAppend: true
storage:
   dbPath: "../data"
   journal:
      enabled: true
net:
   bindIp: 127.0.0.1
   port: 27017
setParameter:
   enableLocalhostAuthBypass: false
security:
    # enabled后各种校验问题
   authorization: "disabled"
replication:  
    oplogSizeMB: 100  
    replSetName: rs0
call mongod.exe -f ../conf/mongo.conf

启动三个独立节点后,初始化每个节点的角色

use admin;

var cfg={_id:"rs0",
    members:[
        {_id:1,host:"127.0.0.1:27017",priority:1},
        {_id:2,host:"127.0.0.1:27018",priority:2},
        {_id:3,host:"127.0.0.1:27019",arbiterOnly:true}
    ]};
rs.initiate(cfg);

之后操作主节点,备份节点即可看到变化。初始化结束后便可以在主节点上建立用户。

分片集群

  • 配置config server & shard server
# config in yaml
systemLog:
   destination: file
   quiet: true
   path: "../log/mongodb.log"
   logAppend: true
storage:
   dbPath: "../data"
   journal:
      enabled: true
net:
   bindIp: 127.0.0.1
   port: 27017
setParameter:
   enableLocalhostAuthBypass: false
security:
    # enabled后各种校验问题
   authorization: "disabled"
sharding:
    # configsvr
   clusterRole: "shardsvr"
  • 独立启动config server & shard server
  • 启动router,指定config server
mongos.exe --logpath=../log/mongos.log --configdb=127.0.0.1:27019 --logappend --port 30000
  • 给router配置shard
mongos> db.runCommand({ addshard:"127.0.0.1:27017" })
mongos> db.runCommand({ addshard:"127.0.0.1:27018" })
mongos> sh.status()
mongos> db.runCommand( { listshards : 1 } );
mongos> db.runCommand( { enablesharding :"testdb"});
mongos> db.runCommand( { shardcollection : "testdb.user",key : {id: 1} } )

# 构造数据
mongos> use testdb;
mongos> for (var i = 1; i <= 1000; i++){
    db.user.save({id:i,"name":"vv"+i});
}
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MongoDB学习之Text Search文本搜索功能
  • MongoDB数据更新方法干货篇
  • MongoDB数据查询方法干货篇
  • MongoDB的索引
  • MongoDB的查询方法
  • MongoDB的基础知识简介
  • MongoDB的下载、安装与部署方法
  • MongoDB的创建、更新和删除
  • mongodb 数据类型(null/字符串/数字/日期/内嵌文档/数组等)
  • mongodb 修改器($inc/$set/$unset/$push/$pop/upsert)

相关文章

  • 2017-05-11浅谈mongodb中query查询
  • 2017-05-11Mongodb启动命令参数中文说明
  • 2017-05-11Windows系统下安装MongoDB与Robomongo环境详解
  • 2017-05-11使用zabbix监控mongodb的方法
  • 2017-05-11深究从MongoDB的ObjectId中获取时间信息
  • 2017-05-11MongoDB 学习笔记
  • 2017-08-22MongoDB 备份与恢复
  • 2017-05-11MongoDB的Master-Slave主从模式配置及主从复制要点解析
  • 2017-05-11MongoDB远程访问配置步骤详解
  • 2017-05-11Mongodb自增id实现方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • CentOS 6.5 x64系统中安装MongoDB 2.6.0二进制发行版教程
    • MongoDB教程之聚合(count、distinct和group)
    • MongoDB中创建索引需要注意的事项
    • Mongodb自增id实现方法
    • MongoDB使用小结:一些不常见的经验分享
    • MongoDB教程之查询操作实例
    • Mongodb3.0.5 副本集搭建及spring和java连接副本集配置详细介绍
    • mongodb权限设置之添加管理员、普通用户的方法
    • MongoDB的安装方法图文教程
    • Ubuntu下安装mongodb 3.4的详细过程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有