Mongodb副本集集群搭建+用户认证(详细步骤)

各位biu贝~~~

初次见面,多多指教。

目录

1. 下载Mongodb压缩包

1.1. 下载压缩包

1.2. 解压并重命名

3. Mongodb安装配置

3.1. 创建目录、文件

3. Mongodb集群配置

3.1. 目录拷贝

3.2. 启动并初始化服务

4. Mongodb添加身份验证

4.1. 创建用户

4.2. 服务重启


服务器资源:

  • 192.168.45.131
  • 192.168.45.132
  • 192.168.45.133

1. 下载Mongodb压缩包

1.1. 下载压缩包

官网下载地址:https://www.mongodb.com/try/download/enterprise

选择目前的最新企业版本-5.0.4下载

Mongodb副本集集群搭建+用户认证(详细步骤)_第1张图片

1.2. 解压并重命名

将压缩包上传至其中一台服务器(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 

3. Mongodb安装配置

3.1. 创建目录、文件

创建数据存放目录(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();

3. Mongodb集群配置

3.1. 目录拷贝

将服务器192.168.45.131上的mongodb目录整个拷贝到服务器:192.168.45.132、192.168.45.133相同目录/home/mongod/下(提前创建):

scp -r /home/mongod/mongodb [email protected]:/home/mongod/

Mongodb副本集集群搭建+用户认证(详细步骤)_第2张图片

 192.168.45.131 ---> 192.168.45.133 同上。

3.2. 启动并初始化服务

分别进入三台服务器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添加身份验证

4.1. 创建用户

添加身份认证之前,必须先创建用户并设置授权,只需在主节点(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”,则认证成功

4.2. 服务重启

在三台服务器上/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()命令,至此认证已生效

Mongodb副本集集群搭建+用户认证(详细步骤)_第3张图片

 认证后,即可操作:

db.auth("root","root");

大功告成!


遇到问题,请评论区留言 ~~~~

你可能感兴趣的:(数据库,mongodb,mongodb,数据库,database,nosql)