Mongodb的带用户验证replica set配置

15 篇文章 0 订阅
7 篇文章 0 订阅
这些天捣鼓了一下mongodb的replica set
本人初学,属菜鸟。现在将一些心得分享给大家。若有不对之处,望各位大鸟指点。

#创建三个数据存放目录用来做db的路径
/data/data/r0
/data/data/r1
/data/data/r2

#启动一个mongod实例
./mongod --port 27017 --dbpath /data/data/r0
#因为我需要做带用户验证的replica set,所以先这样启动来设置用户
#若要使用replica set,那么所有的节点机器必须在local库里要新增一个repl的用户
use local
db.addUser('repl','replication')
否则,当我们启动slave时,会报错:

引用
replauthenticate: no user in local.system.users to use for authentication
replauthenticate: can't authenticate to master server, user:repl

#同样,启动另外两个mongod实例,添加local用户
./mongod --port 27018 --dbpath /data/data/r1
./mongod --port 27019 --dbpath /data/data/r2

use local
db.addUser('repl','replication')

完成后将三个实例在控制台关闭
use admin
db.shutdownServer();

#接下来我们以replica set的方式启动这三个实例
./mongod --replSet testrs --port 27017 --dbpath /data/data/r0 --auth

./mongod --replSet testrs --port 27018 --dbpath /data/data/r1 --auth

./mongod --replSet testrs --port 27019 --dbpath /data/data/r2 --auth

注意,这里带上了--auth参数,要求客户端使用用户登录

启动好这三个实例后,要去其中一台机的控制台去初始化。该初始化操作只执行一次如下:
db.runCommand({"replSetInitiate":{"_id":"testrs","members":[
{"_id":1, "host":"localhost:27017",priority : 1},
{"_id":2,"host":"localhost:27018",priority : 1},
{"_id":3,"host":"localhost:27019",priority : 0 }
]}})
执行完这个命令后,没什么意外的话,三个实例的replica set就配置启动好了。

通过rs.status();查看哪个实例是主节点,去登录主节点的客户端。
由于设置了--auth参数,所以我们要先建立用户。
use admin;
db.addUser('root','root'); //在admin库里创建一个root用户
db.auth('root','root');
use wj;
db.addUser('wj','wj'); //在wj库里创建一个wj用户

这样,在wj库里新增数据的话,就可以在三台实例里查看到了。
在从节点查看数据的话,需要执行db.getMongo().setSlaveOk()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值