安装软件包:mongodb-linux-x86_64-3.4.1.tgz
安装流程思路
目前最小节点是3个,本文档暂且按照3个节点来配置:A、B、C
1、在集群每个节点上安装一份MongoDB;
2、配置副本集;
3、配置副本集的用户、密码;
4、配置副本集的KeyFile安全鉴权;
5、配置开机自启动;
每个节点IP:
• A节点: 192.168.1.10
• B节点: 192.168.1.11
• C节点: 192.168.1.12
步骤1: 每个节点安装MongoDB
1、下载MongoDB安装包:mongodb-linux-x86_64-3.4.1.tgz
2、解压安装包, 创建目录,拷贝配置文件:
[root@a6a766e6204a ~]# tar -zxvf mongodb-linux-x86_64-3.4.1.tgz
[root@a6a766e6204a ~]# mv mongodb-linux-x86_64-3.4.1 mongodb
[root@a6a766e6204a ~]# mv mongo.conf mongodb/
[root@a6a766e6204a ~]# mkdir mongodb/data mongodb/keyfile mongodb/logs
创建完成后,目录的结构:
mongodb
├── bin #可执行文件
├── data #存放数据库文件
├── keyfile #存放Keyfile
├── logs #存放系统日志
├── mongo.conf #配置文件
3、添加到环境变量
[root@a6a766e6204a ~]# vi /etc/bashrc#MongoDB configMONGO_HOME=/root/mongodbPATH=
M
O
N
G
O
H
O
M
E
/
b
i
n
:
MONGO_HOME/bin:
MONGOHOME/bin:PATH
export PATH MONGO_HOME
[root@a6a766e6204a ~]# source /etc/bashrc
4、创建 mongo.conf 配置项,包括端口、路径等, 例如,配置后的文件:
[root@a6a766e6204a ~]# vi mongodb/mongo.conf
#日志文件位置:改为实际路径logpath=/root/mongodb/logs/mongo.log
#以追加的方式写日志logappend=true
#端口port=27118
#是否以守护进程的方式运行fork=true
#数据库存储位置:改为实际路径dbpath=/root/mongodb/data/
#是否以安装认证方式运行
#auth=true
#副本集名字replSet=replSet#KeyFile鉴权文件:改为实际路径#keyFile=/root/mongodb/keyfile
5、分别启动每个节点:A、B、C节点
启动方式1:
[root@a6a766e6204a ~]# mongod -f mongodb/mongo.confabout to fork child process, waiting until server is ready for connections.
forked process: 1289child process started successfully, parent exiting
启动方式2:./mongod /data/mongoDB-oa/mongodb/keyfile --bind_ip 192.168.1.10 --port 27118 --dbpath /data/mongoDB-oa/mongodb/data --logpath /data/mongoDB-oa/mongodb/logs/mongodb.log --replSet smartga --logappend --fork --rest --httpinterface
步骤2: 组建副本集
1、使用mongo 客户端 连接任意节点(假设 目前创建的节点有 A、B、C 三台)
[root@c43bfab6f744 ~]# mongo --port 27118
连接成功后,开始配置副本集:
config = {_id: ‘replSet’, members: [{_id: 0, host: ‘192.168.1.10:27118’},{_id: 1, host: ‘192.168.1.11:27118’},{_id: 2, host:‘192.168.1.12:27118’}]}
{ “_id” : “replSet”, “members” : [
{ “_id” : 0, “host” : “192.168.1.10:27118”
},
{ “_id” : 1, “host” : “192.168.1.11:27118”
},
{ “_id” : 2, “host” : “192.168.1.12:27118”
}
]
}
rs.initiate(config) #初始化副本集{ “ok” : 1 }
rs.status() #查看副本集状态,找到private节点的IP
配置mongoDB安全认证
关闭其他节点,保留主节点,重启主节点,主节点不设置replSet参数.
–无认证方式连接主节点admin数据库新增超级管理员用户 admin aaa123,./;
use admin;
db.createUser({
user: ‘admin’,
pwd: ‘aaa123,./’,
roles: [
{
role: ‘root’,
db: ‘admin’
}
]
});
–主节点 SgaZlDB数据库新增读写权限用户
db.auth(“admin”,“aaa123,./”);
use SgaZlDB;
db.createUser({
user: ‘sgazl’,
pwd: ‘aaa123,./’,
roles: [
{
role: ‘readWrite’,
db: ‘SgaZlDB’
}
]
});
1)打开mongo主节点服务器shell
2)进入mongodb根目录
3)执行openssl rand -base64 90 -out ./keyfile
4)拷贝keyfile文件到其余2个节点
5)赋权chmod 600 ./keyfile 三个节点都需要赋权
6)关闭所有节点
7)重启所有节点
如果使用配置文件启动,则需在配置文件里新增配置
auth=true
keyFile=keyfile实际路径
如果使用命令启动
./mongod –auth –keyFile /data/mongoDB-oa/mongodb/keyfile --bind_ip 192.168.1.10 --port 27118 --dbpath /data/mongoDB-oa/mongodb/data --logpath /data/mongoDB-oa/mongodb/logs/mongodb.log --replSet smartga --logappend --fork --rest --httpinterface
验证文件上传下载预览等功能能否正常使用;