MongoDB一主一丛有用户认证的搭建

准备好两台测试服务器
主 10.0.0.3
从 10.0.0.4

一、两台服务器安装mongodb数据库

第一步:创建好目录
mkdir -p /data_master/tools/
cd /data_master/tools/

第二步:下载完安装包并解压
#下载
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
#解压
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

第三步:将解压包拷贝到指定目录
mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb

第四步:添加环境变量并重启环境变量
echo "export PATH=/usr/local/mongodb/bin:$PATH" >>/etc/profile
source /etc/profile

第五步:创建数据库目录
#MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。
#以下实例中我们将data目录创建于根目录下(/)。
#注意:/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)。
mkdir -p /data_master/db
mkdir -p /data_master/mongdb/log
mkdir -p /data_master/db_slave

二、主服务器启动mongodb
第六步:命令行中运行mongodb服务
cd /usr/local/mongodb/bin
./mongod -dbpath /data_master/db -master

三、从服务器启动mongodb
第六步:命令行中运行mongodb服务
cd /usr/local/mongodb/bin
./mongod -dbpath /data_master/db_slave -slave -source 10.0.0.3:27017

在报错的slave机器上执行 rs.slaveOk()方法即可。

rs.slaveOk()
show dbs
local 0.078GB
test 0.078GB
use test
switched to db test
show collections
system.indexes
users
db.users.find()
{ "_id" : ObjectId("55763d98db85929bb8addedf"), "username" : "lwb" }
{ "_id" : ObjectId("55764a694b24187a7a3c6693"), "username" : "mongodb master-sla

四、带账户验证的主从复制

openssl rand -base64 741 > /root/mongo-keyfile
主库生成这个配置文件
生成完成后把权限改小一些
scp传送给从库
权限给成400最好
(后期因为权限的问题可能会有报错)

然后在没有设置用户验证的情况下 先进入主库和从库的mongodb 进行设置用户
设置验证的用户和密码

use admin
switched to db admin
db.createUser( { user:'dbAdmin', pwd:'aqMkDuYbRAvfgJk', roles:["root"] } );
Successfully added user: { "user" : "dbAdmin", "roles" : [ "root" ] }
use jhpicdb
switched to db jhpicdb
db.createUser( { user:'jhpicdb', pwd:'aqMkDuYbRAvfgJk', roles:["readWrite"] } );
Successfully added user: { "user" : "admin", "roles" : [ "readWrite" ] }

然后下载命令行登录就得验证用户
[root@vm-11a001mz log]# mongo
MongoDB shell version: 3.0.6
connecting to: test

use admin
switched to db admin
db.auth("dbAdmin","aqMkDuYbRAvfgJk");
1
show dbs
admin 0.078GB
jhpicdb 49.930GB
local 0.078GB

注意啊,两个库的操作要一致。

主库上面的配置文件
[root@root backup]# cd /usr/local/mongodb/bin/
[root@root bin]# cat mongodb.conf

idae - MongoDB config start - 20180203

master = on

设置数据文件的存放目录

dbpath = /data_master/db

设置日志文件的存放目录及其日志文件名

logpath = /data_master/mongdb/log/mongo.log

设置端口号(默认的端口号是 27017)

port = 27017

设置为以守护进程的方式运行,即在后台运行

fork = true

nohttpinterface = true

nohttpinterface = true
#打开认证
auth = on
#主库
#master = on
#密钥
keyFile = /root/mongo-keyfile

从库上面的配置文件
[root@root ~]# cd /usr/local/mongodb/bin/
[root@root bin]# cat mongodb.conf

idae - MongoDB config start - 20180203

设置数据文件的存放目录

dbpath = /data_master/db_slave

设置日志文件的存放目录及其日志文件名

logpath = /data_master/mongdb/log/mongo.log

设置端口号(默认的端口号是 27017)

port = 27017
#从库
slave = on
source = 10.0.0.3:27017

设置为以守护进程的方式运行,即在后台运行

fork = true

nohttpinterface = true

nohttpinterface = true
#打开认证
auth = on
#密钥
keyFile = /root/mongo-keyfile
#repair = on

转载于:https://blog.51cto.com/lsy666/2125443

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值