Linux下安装MongoDB复制集+用户认证,与Spring集成操作

根据网上查找的资料,自己动手在虚拟机内搭建MongoDB复制集+用户认证,Spring集成测试。


附上操作文档、java源码的下载地址(免积分下载):http://download.csdn.net/detail/zbq8hao/9887344

该文章由附件里的操作文档复制过来,图片丢失,所以最好用附件里的操作文档来看,比较清晰。


mongodb安装步骤略,必须已熟悉mongodb基本操作

查看mongodb是否已启用

netstat -nltp|grep 27017


搜索进程

ps -ef|grep mongo

结束进程

kill -9 [pid]

 

关闭mongodb

use admin

db.shutdownServer()

 

exit命令退出mongo客户端

测试环境

CentOS 6.5

mongodb 3.4.5

CentOS固定ip192.168.145.131

本文档mongodb安装目录为/usr/local/mongodb

三个mongodb实例在同一台服务器,端口号:27017(主节点)、27018(从节点)、27019(从节点)

一、搭建复制集(无用户认证)

1.准备

1.1mongodb目录下,创建数据库、日志目录

mkdir -p data/db1 data/db2 data/db3

mkdir -p data/log1 data/log2 data/log3

1.2创建日志文件

touch data/log1/mongo1.log data/log2/mongo2.log data/log3/mongo3.log

2.启动3个实例

./bin/mongod --dbpath /usr/local/mongodb/data/db1 --logpath /usr/local/mongodb/data/log1/mongo1.log --port 27017 --fork --replSet rsa

./bin/mongod --dbpath /usr/local/mongodb/data/db2 --logpath /usr/local/mongodb/data/log2/mongo2.log --port 27018 --fork -replSet rsa

./bin/mongod --dbpath /usr/local/mongodb/data/db3 --logpath /usr/local/mongodb/data/log3/mongo3.log --port 27019 --fork --replSet rsa

3.复制集配置

3.1在任意一台机上配置副本集,这里在27017上配置

./bin/mongo 27017

3.2切换到amdin集合

use admin

3.3配置对象

rsconf={_id:'rsa',members:[{_id:0,host:'192.168.145.131:27017'},{_id:1,host:'192.168.145.131:27018'},{_id:2,host:'192.168.145.131:27019'}]}

注意:要用具体ip或主机名,不要用127.0.0.1localhost,或者在spring连接时会连接异常,spring读取配置信息的主机为127.0.0.1,所以异常

3.5初始化配置

rs.initiate(rsconf)

3.6查看复制集状态

rs.status()

4.测试

4.1主节点插入

步骤省略

4.2连接从节点查询同步情况

./bin/mongo --port 27018

出现上述错误,是因为slave默认不许读写先执行rs.slaveOk()再其他操作

rs.slaveOk()

查询测试步骤省略

其他一些操作

更新配置

rs.reconfig(rsconf)

删除节点

rs.remove('1192.168.145.131:27018');

rs.remove('1192.168.145.131:27019');

添加节点

rs.add('1192.168.145.131:27018');

rs.add('1192.168.145.131:27019');

二、搭建复制集(用户认证)

1.准备

1.1mongodb目录下,创建数据库、日志目录

mkdir -p data/db1 data/db2 data/db3

mkdir -p data/log1 data/log2 data/log3

1.2创建日志文件

touch data/log1/mongo1.log data/log2/mongo2.log data/log3/mongo3.log

2.启动3个实例,此处以配置文件的形式启动

2.1先创建配置文件

vi 27017.conf

vi 27018.conf

vi 27019.conf

2.2启动mongod实例,-f后面跟上该结点的配置文件的路径  

"27017.conf"是一个相对路径,即上面的27017.conf这个配置文件的路径

./bin/mongod -f 27017.conf

./bin/mongod -f 27018.conf

./bin/mongod -f 27019.conf

3.复制集配置

3.1在任意一台机上配置副本集,这里在27017上配置

./bin/mongo 27017

3.2切换到amdin集合

use admin

3.3配置对象

rsconf={_id:'rsa',members:[{_id:0,host:'192.168.145.131:27017'},{_id:1,host:'192.168.145.131:27018'},{_id:2,host:'192.168.145.131:27019'}]}

注意:要用具体ip或主机名,不要用127.0.0.1localhost,或者在spring连接时会连接异常,spring读取配置信息的主机为127.0.0.1,所以异常

3.4初始化配置

rs.initiate(rsconf)

3.5查看复制集状态

rs.status()

4.生成keyfile文件

4.1在主节点的mongodb路径下,生成生成753字节的密钥文件

openssl rand -base64 753 >keyfile.dat

4.2建议把密钥文件的权限设置为600(针对启动mongo实例的那个用户)

chmod 600 keyfile.dat

接着需要把这个密钥文件拷贝到每个复制集结点上(包括主结点和从结点)这里都在同一机器上,所以不拷贝

 

5.创建复制集的用户

5.1进入主结点(我这里此时27017是主结点)的admin

./bin/mongo 27017

use admin

5.2创建admin库的用户(身份为所有库的用户的管理者)

db.createUser({user:'dba',pwd:'dba',roles:[{role:'root',db:'admin'}]})

5.3进入你之前创建的新库

use test

5.4创建这个库的用户(身份为此库的拥有者)

注意,只需要在主结点上创建这两个用户由于复制集的关系,每个从结点会自动创建这两个相同的用户

db.createUser({user:'startdm',pwd:'123456',roles:[{role:'dbOwner',db:'test'}]})

6.修改配置

6.1关闭原先的集群  

注意,最好按照 从节 -> 的顺序,依次关闭各结点的进程在关闭某个进程时,需要先进入admin库,然后执行这条命令

db.shutdownServer()

6.2在每个结点(主结点,从结点)的配置文件中加入keyFile的配置项

keyFile=/usr/local/mongodb/keyfile.dat  

6.3在每个结点(主结点,从结点)的配置文件中加入auth=true的配置项

auth=true

7.重启集群

./bin/mongod -f 27017.conf

./bin/mongod -f 27018.conf

./bin/mongod -f 27019.conf

8.测试

use库,再db.auth(用户名’,’密码’),从节点用户验证后需要执行rs.slaveOk(),才能查询

步骤省略


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值