设为首页 收藏本站
查看: 988|回复: 0

[经验分享] mongodb服务安装,搭建副本集及原理概述

[复制链接]

尚未签到

发表于 2018-10-26 08:32:56 | 显示全部楼层 |阅读模式
  ##初始化系统环境,参考文档:服务器系统环境初始化,Centos7系统
  #mongodb下载安装
mkdir -p /server/src /server/logs  
groupadd mongod
  
useradd -s /sbin/nologin -g mongod mongod
  
cat /etc/passwd |grep mongo
  
cd /root
  
   ##安装mongodb 3.0.7版本,若需要其他版本,官网获取下载https://fastdl.mongodb.org/linux/
  
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.0.7.tgz
  
tar zxvf mongodb-linux-x86_64-rhel70-3.0.7.tgz
  
mv mongodb-linux-x86_64-rhel70-3.0.7 /usr/local/mongodb
  
mkdir -p /data/mongodb2/db
  
mkdir /data/mongodb2/log
  
mkdir /data/mongodb2/keyfile
  
chmod 755 !$
  
touch /data/mongodb2/keyfile/security
  
chmod 600 !$
  
echo "xxxxy" > !$
  
cat !$
  
touch /data/mongodb2/log/mongo.log
  
chmod 644 !$
  
chown -R mongod.mongod /data/mongodb2
  
ll /data
  
ll /data/mongodb2/
  
ll /data/mongodb2/log/
  
ll /data/mongodb2/keyfile/
  
vim /lib/systemd/system/mongod.service
[Unit]  
    Description=mongodb
  
    After=network.target remote-fs.target nss-lookup.target
  

  
[Service]
  
    Type=forking
  
    PIDFile=/data/mongodb2/db/mongod.lock
  
    ExecStart=/usr/local/mongodb/bin/mongod --dbpath=/data/mongodb2/db --logpath=/data/mongodb2/log/mongo.log --fork --port 27017 --logappend --replSet rep1 --rest --httpinterface --maxConns=8000 --keyFile=/data/mongodb2/keyfile/security
  
    ExecReload=/bin/kill -s HUP $MAINPID
  
    ExecStop=/bin/kill -s QUIT $MAINPID
  
    PrivateTmp=true
  
    LimitFSIZE=infinity
  
    LimitCPU=infinity
  
    LimitAS=infinity
  
    LimitNOFILE=64000
  
    LimitNPROC=64000
  

  
[Install]
  
    WantedBy=multi-user.target
systemctl enable mongod.service  
systemctl start mongod.service
  
ps aux |grep mongo |grep -v 'grep'
  
systemctl status mongod.service
  
    #将mongo程序添加到环境变量
  
echo "export PATH=/usr/local/mongodb/bin:$PATH" >>/etc/profile
  
source !$
  
echo $PATH
  #创建帐号
##创建帐号方式一(创建admin管理员)  
use admin
  
db.createUser({user:"mongo_admin",pwd:"xxx",roles:[{role:"root",db:"admin"}]})
    #下次登录需要验证才能对数据库进行操作  
mongo
  
use admin
  
db.auth('mongo_admin','xxx')
  ##创建管理员方式二(创建dba用户)
> use admin  
switched to db admin
  
> db.createUser(
  
...   {
  
...     user: "dba",
  
...     pwd: "dba",
  
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  
...   }
  
... )
  
Successfully added user: {
  
    "user" : "dba",
  
    "roles" : [
  
        {
  
            "role" : "userAdminAnyDatabase",
  
            "db" : "admin"
  
        }
  
    ]
  
}
  
##现在需要创建一个帐号,该账号需要有grant权限,即:账号管理的授权权限。注意一点,帐号是跟着库走的,所以在指定库里授权,使用指定库也必须在指定库里验证(auth)。
  ##创建用户解析
  roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。role里的角色可以选:
  Built-In Roles(内置角色):
  1. 数据库用户角色:read、readWrite;
  2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
  3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  4. 备份恢复角色:backup、restore;
  5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  6. 超级用户角色:root
  // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
  7. 内部角色:__system
  具体角色:
  Read:允许用户读取指定数据库
  readWrite:允许用户读写指定数据库
  dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
  readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
  userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
  dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
  root:只在admin数据库中可用。超级账号,超级权限
  #副本集配置文件
conf=({_id:"repl",members:[{_id:0,host:"103.56.195.2"},{_id:1,host:"103.56.195.3"},{_id:2,host:"103.56.195.4"}]})  
rs.initiate(conf)
  
rs.status()
  
rs.conf()                        #查看副本集配置文件
  
{
  "_id" : "repl",
  "version" : 8,
  "members" : [
  {
  "_id" : 0,
  "host" : "103.56.195.2:27017",
  "arbiterOnly" : false,
  "buildIndexes" : true,
  "hidden" : false,
  "priority" : 1,
  "tags" : {
  },
  "slaveDelay" : 0,
  "votes" : 1
  },
  {
  "_id" : 1,
  "host" : "103.56.195.3:27017",
  "arbiterOnly" : false,
  "buildIndexes" : true,
  "hidden" : false,
  "priority" : 1,
  "tags" : {
  },
  "slaveDelay" : 0,
  "votes" : 1
  },
  {
  "_id" : 3,
  "host" : "103.56.195.5:27027",
  "arbiterOnly" : true,
  "buildIndexes" : true,
  "hidden" : false,
  "priority" : 1,
  "tags" : {
  },
  "slaveDelay" : 0,
  "votes" : 1
  },
  {
  "_id" : 2,
  "host" : "103.56.195.4:27017",
  "arbiterOnly" : false,
  "buildIndexes" : true,
  "hidden" : false,
  "priority" : 1,
  "tags" : {
  },
  "slaveDelay" : 0,
  "votes" : 1
  }
  ],
  "settings" : {
  "chainingAllowed" : true,
  "heartbeatTimeoutSecs" : 10,
  "getLastErrorModes" : {
  },
  "getLastErrorDefaults" : {
  "w" : 1,
  "wtimeout" : 0
  }
  }
  
}
  #设置副本集中每台服务器的优先级
mongo 10.10.148.130:27017       #ip和port是某个节点的地址  
use admin
  
cfg={_id:"testrs",members:[{_id:0,host:'10.10.148.130:27017',priority:2},{_id:1,host:'10.10.148.131:27017',priority:1},{_id:2,host:'10.10.148.132:27017',arbiterOnly:true}]};
  
rs.initiate(cfg)
  #测试副本集数据同步,在primary主节点上写数据
[primary]  
for(var i=0;i

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-626551-1-1.html 上篇帖子: MongoDB当前操作db.currentOp()示例 下篇帖子: MongoDB(五)之分片
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表