mongodb 在认证(auth)的情况下,配置主从(master & slave)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb 在认证(auth)的情况下,配置主从(master & slave)相关的知识,希望对你有一定的参考价值。

master配置

本机 :192.168.100.23:27017

/etc/mongodb/mongo.conf

port = 27017
 dbpath = /data/mongodb_t
 logpath = /var/log/mongodb_t.log
 logappend = true
 journal = true
 fork = true

1. 以上配置单机打开mongo,对admin数据库进行设置

据资料, 必须建立全局用户root,个人感觉是超级管理员; 必须对local数据库建立repl用户。

mongo –port 27017

> use admin
> db.createUser({user:"root", pwd:"123456", roles:[{role:"root", db:"admin"}]})
> db.createUser({user:"repl", pwd:"123456", roles:[{role:"dbOwner", db:"local"}]})
> show users
{    "_id" : "admin.root",    "user" : "root",    "db" : "admin",    "roles" : [
        {            "role" : "root",            "db" : "admin"
        }
    ]
}
{    "_id" : "admin.repl",    "user" : "repl",    "db" : "admin",    "roles" : [
        {            "role" : "dbOwner",            "db" : "local"
        }
    ]
}

>exit12345678910111213141516171819202122232425262728

2、 修改配置文件

添加以下三项:

port = 27017
 dbpath = /data/mongodb_t
 logpath = /var/log/mongodb_t.log
 keyFile=/srv/mongodb/keyfile
 logappend = true
 journal = true
 fork = true
 keyFile=/srv/mongodb/keyfile  #添加keyfile
 auth = true      #打开认证
master = true  #打开主库配置

3、添加keyfile

主要目的是对主从之间的验证

cd /srv/mongodb/
 openssl rand -base64 741 >>keyfile
 chmod 700 keyfile

4、重启数据库

salve配置

本机:与主库不再同一台设备上面,同一局域网

/etc/mongodb/mongo.conf

port = 27017
 dbpath = /data/mongodb_t
 logpath = /logs/mongo/mongodb_t.log
 logappend = true
 journal = true
 fork = true

1.  同master第一步

2. 修改配置文件

port = 27017
 dbpath = /data/mongodb_t
 logpath = /logs/mongo/mongodb_t.log
 logappend = true
 journal = true
 fork = true
 auth = true
 slave = true
 keyFile=/srv/mongodb/keyfile
 source = 192.168.100.23:27017

3、添加keyfile

cd /srv/mongodb/

将主库设备上面的keyfile拷贝到这个目录下

chmod 700 keyfile

4、重启数据库

重启之后,登陆数据库,就能看到与主库的同步了
如果shell登陆, 需要

rs.slaveOk() 


以上是关于mongodb 在认证(auth)的情况下,配置主从(master & slave)的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB未授权访问漏洞复现及docker.mongodb下--auth授权验证

程序需要在有auth认证的mongodb下运行eval函数或命令时提示无权限

mongoDB的复制集5----复制集安全(认证,用户,权限)

Ubuntu16.04搭建MongoDB3.4.3 副本集 开启认证模式

linux下安装mongodb

mongodb远程认证失败Mongod v4