各位biu贝~~~
初次见面,多多指教。
目录
1. 下载Mongodb压缩包
1.1. 下载压缩包
1.2. 解压并重命名
3. Mongodb安装配置
3.1. 创建目录、文件
3. Mongodb集群配置
3.1. 目录拷贝
3.2. 启动并初始化服务
4. Mongodb添加身份验证
4.1. 创建用户
4.2. 服务重启
服务器资源:
官网下载地址:https://www.mongodb.com/try/download/enterprise
选择目前的最新企业版本-5.0.4下载
将压缩包上传至其中一台服务器(192.168.45.131)指定目录下:
压缩包解压:
tar -zxvf mongodb-linux-x86_64-rhel70-5.0.4.tgz
文件夹重命名:
mv mongodb-linux-x86_64-rhel70-5.0.4 mongodb
创建数据存放目录(mongodb目录下):
#创建数据存放目录
mkdir data
创建日志存放文件(mongodb目录下):
#创建日志目录
mkdir logs
#进入logs目录下创建日志文件
touch mongo.log
#赋予读写权限
chmod 666 mongo.log
生成秘钥文件(mongodb目录下):
#用openssl生成一个复杂的伪随机 1024 字符串用作集群共享密码
openssl rand -base64 756 > keyfile
#赋予只读权限(秘钥不可更改)
chmod 400 keyfile
创建启动文件(/mongodb/bin/):
#进入bin目录
cd /mongodb/bin/
#创建mongod.conf文件
vi mongod.conf
输入“i”,进入insert模式,输入以下内容:
#数据库文件存放路径(目录以自己存放位置为准)
dbpath=/home/mongod/mongodb/data
#日志文件存放路径(目录以自己存放位置为准)
logpath=/home/mongod/mongodb/logs/mongo.log
#追加方式写入
logappend=true
#副本集名称
replSet=rs01
#副本集共享秘钥(目录以自己存放位置为准)
#keyFile=/home/mongod/mongodb/keyfile
#开启访问控制
#auth=true
#绑定本机IP
bind_ip=0.0.0.0
#运行端口,默认:27017
port=27017
#后台运行
fork=true
输入完成后按“Esc”键,退出输入模式,输入“:wq”,按“Enter”键,保存并退出。
单机配置完成,启动测试:
#进入bin目录
cd mongodb/bin/
#执行启动命令
./mongod -f mongod.conf
启动成功~~
好了好了xdm... 可以关闭了,刚刚只是测试......
#进入Mongodb环境,bin目录执行
./mongo
#切换数据库(只有在admin下才能执行关闭语句)
use admin;
#关闭服务
db.shutdownServer();
将服务器192.168.45.131上的mongodb目录整个拷贝到服务器:192.168.45.132、192.168.45.133相同目录/home/mongod/下(提前创建):
scp -r /home/mongod/mongodb [email protected]:/home/mongod/
192.168.45.131 ---> 192.168.45.133 同上。
分别进入三台服务器mognodb/bin目录下,执行启动命令:
./mongod -f mongod.conf
启动成功后,任选一台服务器(192.168.45.131)进入/mongodb/bin目录下执行:
#连接mongo服务
./mongo
#切换admin数据库
> use admin;
创建配置文件并初始化副本集:
#创建配置文件
> var conf = {
_id: "rs01",
members: [
{ _id: 0, host : "192.168.45.131:27017" },
{ _id: 1, host : "192.168.45.132:27017" },
{ _id: 2, host : "192.168.45.133:27017" }
]
};
#初始化副本集
> rs.initiate(conf);
_id:副本集名称(mongod.conf中的replSet值)
members._id:唯一值
menbers.host:主机IP:端口
初始化返回{"ok" : 1},则初始化成功
查看集群状态:
> rs.status();
启动成功后,主节点状态为:PRIMARY,备份节点状态为:SECONDARY
拍手!拍手!拍手!集群搭建成功~~~
4. Mongodb添加身份验证
添加身份认证之前,必须先创建用户并设置授权,只需在主节点(PRIMARY)上添加用户即可,会自动同步到备份节点。
#在主节点服务器上连接mongodb
./mongo
#切换admin数据库
> use admin;
#创建并认证root权限的用户
> db.createUser({user:"root",pwd:"root",roles:["root"]});
> db.auth("root","root"); //返回“1”,则认证成功
#切换并创建testLogs数据库(用户是针对数据库创建的)
> use testLogs;
#创建并认证读写权限用户(提供给应用连接的用户)
> db.createUser({user:"test",pwd:"test",roles:[{role:"readWrite",db:"testLogs"}]});
> db.auth("test",test"); //返回“1”,则认证成功
在三台服务器上/mongodb/bin/下执行以下命令停止服务;执行顺序 从-从-主 :
#连接数据库
./mongo
#切换数据库
use admin
#关闭mongo服务
db.shutdownServer();
还记得mongod.conf配置文件里的auth、keyFile属性吗?(对,就是被我注释掉的那两个)
去掉注释保存配置,重新启动服务,启动顺序 主-从-从:
#进入bin目录
cd mongodb/bin/
#执行启动命令
./mongod -f mongod.conf
验证一下用户验证是否添加成功吧
#连接数据库
./mongo
#切换admin库
> use admin;
#查看集群状态
> rs.status();
提示需要认证才能执行rs.status()命令,至此认证已生效
认证后,即可操作:
db.auth("root","root");
大功告成!
遇到问题,请评论区留言 ~~~~