mkdir /usr/local/temp
#下载mongodb二进制包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.9.tgz
#创建源码包安装文件夹
mkdir /usr/local/mongodbCluster
#解压
tar -zxvf /usr/local/temp/mongodb-linux-x86_64-4.0.10.tgz -C /usr/local/mongodbCluster/
#创建数据、日志、配置文件的文件夹
mkdir -p /mgrs/data
mkdir -p /mgrs/logs
mkdir -p /mgrs/conf
#编辑配置文件
vim /mgrs/conf/mongod.conf
#生成认证文件
openssl rand -base64 756 > /mgrs/conf/access.key
chmod 400 /mgrs/conf/access.key
#scp认证文件
scp access.key root@192.168.21.151:/mgrs/conf/
scp access.key root@192.168.21.152:/mgrs/conf/
#三节点执行
mongod -f /mgrs/conf/mongod.conf
#查看是否启动
netstat -tnlp | grep 9927
#进入mongo控制台
mongo 127.0.0.1:9927
#配置集群
cfg = {_id: 'myrs', members: []}
cfg.members.push({_id: 1, host: '192.168.21.150:9927'})
cfg.members.push({_id: 2, host: '192.168.21.151:9927'})
#如果此节点不行作为 Arbiter 可以去掉arbiterOnly: true
cfg.members.push({_id: 3, host: '192.168.21.152:9927', arbiterOnly: true})
#根据变量配置集群
rs.initiate(cfg)
#查看集群是否配置成功
rs.isMaster()
rs.status()
#添加用户
mongo 127.0.0.1:9927
use admin
#创建数据库管理员
db.createUser({user:"root",pwd:"root",roles:[{role:"readWriteAnyDatabase",db:"admin"},{role:"dbAdminAnyDatabase",db:"admin"},{role:"userAdminAnyDatabase",db:"admin"}]})
#后续的操作必须使用root
db.auth("root","root")
#集群管理员
db.createUser({user:"suroot",pwd:"suroot",roles:[{role:"clusterAdmin",db:"admin"},{role:"clusterManager",db:"admin"},{role:"clusterMonitor",db:"admin"}]})
# mongo 127.0.0.1:9927
> use admin
> db.auth('root', 'root') #使用数据库管理员认证
> rs.slaveOk() #默认读写操作均在主节点执行, 从节点上需要执行此命令才能读取数据库数据
> db.system.users.find()
> use testdb
> db.auth('test', 'test') #切换到test用户
> db.getCollectionNames()
> use admin #切换到集群管理员用户, 关闭mongo服务
> db.auth('suroot', 'suroot')