m1,m2,m3
配置三台机器的登录互信
cd ~/.ssh
ssh-keygen -t rsa -P ""
三个机器产生的id_rsa.pub[都]追加到机器的authorized_keys,这样机器就有了互信的凭证
cat id_rsa.pub >> authorized_keys 不要忘记权限设定chmod 600 authorized_keys 不要忘记home目录的权限设置为755 .ssh目录设置为700
在官网下载安装包
最新稳定版本 解压
tar -zxvf mongodb-linux-x86_64-4.0.1.tgz
mv mongodb-linux-x86_64-4.0.1 mongodb
vi ~/.bash_profile
#注意别设置错了
PATH=$PATH:$HOME/bin:/home/work/mongodb/bin
source ~/.bash_profile
cd mongodb
建立必要目录
mkdir data logs etc
cd etc
vi mongodb.conf #配置文件说明(见参考资料)
# 日志路径
logpath=/home/work/mongodb/logs/mongod.log
# 是否日志追加
logappend=true
# 后台启动
fork=true
# 端口
port=27017
# 数据目录
dbpath=/home/work/mongodb/data
# pid
pidfilepath=/home/work/mongodb/data/mongod.pid
# 设置oplog的大小
oplogSize=4096
# 最大同时连接数 默认2000
maxConns=2000
# 设置每个数据库将被保存在一个单独的目录
directoryperdb=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
# 监听
bind_ip=0.0.0.0 # 监听
replSet=rs0
https://www.pc-daily./wangluo/bin/mongod -f https://www.pc-daily./wangluo/etc/mongodb.conf
在其中一台登录mongo执行 https://www.pc-daily./wangluo/bin/mongo命令进入命令行
初始化mongo环境
rs.initiate(
{
_id: "rs0",
version: 1,
members: [
{ _id: 0, host : "m1:27017" },
{ _id: 1, host : "m2:27017" },
{ _id: 2, host : "m3:27017" }
]
}
)
通过rs.status()命令可以查看链接状态
use test
db.col.save({a:'dongge'});
db.col.find();
{ "_id" : ObjectId("5bd162cd6158e0f4ea9ae9a2"), "a" : dongge }
看起来成功,然后在所有的SECONDARY机器执行rs.slaveOk(),把SECONDARY机器设置为只读(主要)
db.col.find();
停掉Primary,关闭mongo服务器
use admin;
db.shutdownServer();
#或以下命令关闭
mongod --shutdown --dbpath /home/work/mongodb/data
查看rs.status() 看看是否转移成功
创建超级用户root use admin db.createUser({user:"root",pwd:"your password",roles:["root"]})
创建所有数据库只读角色 db.createUser({user:"nr",pwd:"your password",roles:["readAnyDatabase"]})
创建线上运行用户 db.createUser({user:"nw",pwd:"your password",roles:["readWriteAnyDatabase"]})
创建线上集群监控角色 db.createUser({user:"monitor",pwd:"your password",roles:["clusterMonitor"]})
查看系统所有用户 db.system.users.find().pretty()
关闭集群,修改mongodb.conf配置文件开启用户认证模式,配置完毕后重启集群,如下,开启认证,生成认证文件
openssl rand -base64 756 > energy-rc.key
chmod 400 energy-rc.key
然后拷贝到每一个机器mongodb/etc下
修改mongo.conf文件,增加如下内容:
# 开启认证模式
auth=true
# 安全认证机制
keyFile=/home/work/mongodb/etc/energy-rc.key
重启机器
mongod --shutdown --dbpath /home/work/mongodb/data
mongod -f /home/work/mongodb/etc/mongodb.conf
验证开启认证效果
use admin
db.auth("uanme_nr_rd","your pwd")
db.auth("uanme_nw","your pwd")
db.auth("root","your pwd")
db.auth("monitor","your pwd")
mongodb4.0.2 复制集主从部署
MongoDB高级应用(二):集群复制
MongoDB用户角色配置
mongodb配置文件配置
mongodb配置文件配置-官方