# update by csc 20170217  

#opensystem  centos  6.5 64 bit 


tar -xvzf   mongodb-linux-x86_64-rhel62-3.4.2.gz  -C /usr/local/ 

mv  /usr/local/mongodb-linux-x86_64-rhel55-3.4.2  /usr/local/mongodb


echo 'export PATH=$PATH:/usr/local/mongodb/bin' >>/etc/profile

 source /etc/profile 

===============================



mkdir  -p /data/mongodb/config/data

mkdir  -p /data/mongodb/config/log


mkdir  -p /data/mongodb/mongos/log


mkdir  -p /data/mongodb/shard1/data

mkdir  -p /data/mongodb/shard1/log


mkdir  -p /data/mongodb/shard2/data

mkdir  -p /data/mongodb/shard2/log


如果启动报警 则要配置;/

echo 0 > /proc/sys/vm/zone_reclaim_mode

echo never >/sys/kernel/mm/transparent_hugepage/enabled 

echo never >/sys/kernel/mm/transparent_hugepage/defrag


cat >>/etc/rc.d/rc.local<

echo 0 > /proc/sys/vm/zone_reclaim_mode

echo never >/sys/kernel/mm/transparent_hugepage/enabled 

echo never >/sys/kernel/mm/transparent_hugepage/defrag

EOF



##############  生产keyFile文件  (认证使用 --账户管理)

#openssl rand -base64 753

copy 字符串到   /usr/local/mongodb/key 

chmod 600  /root/mobgodb/key

并把key文件复制到其他2节点的相同目录下


################################


  /usr/local/mongodb/bin/mongod --configsvr --replSet cfgReplSet --dbpath /data/mongodb/config/data --port 21000 --logpath /data/mongodb/config/log/config.log  --fork   --keyFile /usr/local/mongodb/key    



  /usr/local/mongodb/bin/mongod --shardsvr --replSet shard1 --port 22001 --dbpath /data/mongodb/shard1/data --logpath /data/mongodb/shard1/log/shard1.log --fork  --oplogSize 10000    --keyFile /usr/local/mongodb/key 



  /usr/local/mongodb/bin/mongod --shardsvr --replSet shard2 --port 22002 --dbpath /data/mongodb/shard2/data --logpath /data/mongodb/shard2/log/shard2.log --fork  --oplogSize 10000  --keyFile /usr/local/mongodb/key     




  /usr/local/mongodb/bin/mongos --configdb cfgReplSet/192.168.1.15:21000,192.168.1.16:21000,192.168.1.17:21000 --port  30000    --logpath /data/mongodb/mongos/log/mongos.log --fork  --keyFile /usr/local/mongodb/key 

 

======================= 


 mongo  192.168.1.15:21000

 

 use admin 

 config = { _id:"cfgReplSet", members:[

  {_id:0,host:"192.168.1.15:21000"},

  {_id:1,host:"192.168.1.16:21000"},

  {_id:2,host:"192.168.1.17:21000"}

  ]

  }


rs.initiate(config);


 

=========================


 mongo  192.168.1.15:22001

 

 use admin 

 config = { _id:"shard1", members:[

  {_id:0,host:"192.168.1.15:22001",priority:2},

  {_id:1,host:"192.168.1.16:22001",priority:1},

  {_id:2,host:"192.168.1.17:22001",arbiterOnly:true}

  ]

  }


rs.initiate(config);



 


 



========================

 mongo  192.168.1.16:22002

 

  use admin 

config = { _id:"shard2", members:[

  {_id:0,host:"192.168.1.15:22002",priority:1},

  {_id:1,host:"192.168.1.16:22002",priority:2},

  {_id:2,host:"192.168.1.17:22002",arbiterOnly:true}

  ]

  }


rs.initiate(config);


 

 

 =====================

 mongo  192.168.1.15:30000

 use admin

串联 - 增加 --路由服务器与分配副本集1


 db.runCommand( { addshard : "shard1/192.168.1.15:22001,192.168.1.16:22001,192.168.1.17:22001"});


串联 - 增加 --路由服务器与分配副本集2

db.runCommand( { addshard : "shard2/192.168.1.15:22002,192.168.1.16:22002,192.168.1.17:22002"});


 

 

############################################# 

 ##创建账户

 mongos 192.168.1.15:30000

 

 ##创建超级管理用户密码 root/12345

 use admin

 

 db.createUser(

  {

    user: "root",

    pwd: "12345",

    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]

  }

)


###查看

show users


##########################################################


#创建 数据库的账户密码  portal/123456  数据库:WHTY_EDU_469026


use WHTY_EDU_469026

db.createUser(

 {

   user: "portal",

   pwd: "123456",

   roles: [

      { role: "readWrite", db: "WHTY_EDU_469026" },

   ]

 }

)


#####  查看

show users





############ 链接 方式1:

# mongo -u portal  -p 123456  127.0.0.1:30000/WHTY_EDU_469026


########### 链接 方式2:

use admin

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




####  删除账户

用admin账户登入,然后 use 数据库 ,

执行      db.dropuser("portal")