Mongodb带验证的主从复制架构
2016-01-07 11:18
597 查看
先说几个关于mongodb的使用命令:
1.创建用户 db.addUser('username','password');
2.查询当前库中用户信息 db,system.users.find();
3.进入响应数据库 use databaseName;
4.显示当前数据库所有库的大小信息 show dbs;
5.显示当前库的所有表信息 show collections;
6.对数据进行用户验证 db.auth('username','password');
7.创建表 db.createCollection('test');
8.关闭数据的时候不要使用kill -9 的方式进行关闭数据库,这样会导致数据的破坏,关闭方法有两种,如下:
方法一:
比如你创建了一个用户,权限只能看test库,当你使用mongodb mv管理软件且使用管理员的帐号连接上后,你会神奇的发现帐号test库并不显示,原因在于此数据库中没有任何的数据,当你使用第七条命令创建了一个表后,神奇的事情发生了,test这个数据库出现了
回归正题
关于mongodb的主从复制
不带账户验证的主从复制
此种方案非常好理解,且操作简单,但是使用起来不安全。操作步骤大概如下:
系统环境介绍:Ubuntu 12.04.1 、MongoDB shell version: 2.6.1
启动的时候 只需要指定master和slave就可以了如下:
此种方案就有点麻烦了,mongodb的官方文档注明了,需要使用一个keyfile的关键字进行数据同步,仅仅是哟过--auth是不行的。操作步骤大概如下:
系统环境介绍:Ubuntu 12.04.1 、MongoDB shell version: 2.6.1
步骤一、首先要进入admin库设置一个admin的账号,此账号为管理员帐号,对所有库都具有增删改查的权限,操作步骤如下:
步骤四、停到主从,然后生成key文件。步骤如下:
第五步、启动主从两个mongo。步骤如下
关于mongodb的账号设置管理与非管理员设置
上面已经阐述了关于创建 “管理员”账号的操作方法,此处不就在阐述,如下内容阐述如何 创建普通用户权限
创建logdb库的普通用户,这个用户只可以操作本数据库,代码如下
本文出自 “精忠报国” 博客,转载请与作者联系!
1.创建用户 db.addUser('username','password');
2.查询当前库中用户信息 db,system.users.find();
3.进入响应数据库 use databaseName;
4.显示当前数据库所有库的大小信息 show dbs;
5.显示当前库的所有表信息 show collections;
6.对数据进行用户验证 db.auth('username','password');
7.创建表 db.createCollection('test');
8.关闭数据的时候不要使用kill -9 的方式进行关闭数据库,这样会导致数据的破坏,关闭方法有两种,如下:
方法一:
#进入admin数据库 use admin; #执行关闭数据库命令 db.shutdownServer();方法二:
#过滤出进程ID netstat -ntpl | grep port #使用-15的方式进行杀掉进程 kill -15 ID讲一个话外题,不感兴趣的同学可以略过,直接next了
比如你创建了一个用户,权限只能看test库,当你使用mongodb mv管理软件且使用管理员的帐号连接上后,你会神奇的发现帐号test库并不显示,原因在于此数据库中没有任何的数据,当你使用第七条命令创建了一个表后,神奇的事情发生了,test这个数据库出现了
回归正题
关于mongodb的主从复制
不带账户验证的主从复制
此种方案非常好理解,且操作简单,但是使用起来不安全。操作步骤大概如下:
系统环境介绍:Ubuntu 12.04.1 、MongoDB shell version: 2.6.1
启动的时候 只需要指定master和slave就可以了如下:
mongod --dbpath=/usr/local/mongodb/data/mongodb_27017/ --fork --logpath=/var/log/mongod.log --port 27017 --master
mongod --dbpath=/usr/local/mongodb/data/mongodb_27018/ --fork --logpath=/var/log/mongod27018.log --port 27018 --slave --source=127.0.0.1:2701带账户验证的主从复制
此种方案就有点麻烦了,mongodb的官方文档注明了,需要使用一个keyfile的关键字进行数据同步,仅仅是哟过--auth是不行的。操作步骤大概如下:
系统环境介绍:Ubuntu 12.04.1 、MongoDB shell version: 2.6.1
步骤一、首先要进入admin库设置一个admin的账号,此账号为管理员帐号,对所有库都具有增删改查的权限,操作步骤如下:
mongo --host = 127.0.0.1:27017 use admin; db.addUser('admin','admin');步骤二、停掉现有的mongodb,然后使用如下参数启动,测试admin账户是否正确
mongod --dbpath=/usr/local/mongodb/data/mongodb_27017/ --fork --logpath=/var/log/mongod.log --port 27017 --auth mongo --host = 127.0.0.1:27017 use admin; db.auth('admin','admin');步骤三、在slave上同样的操作步骤,进行设置slave的admin帐号并验证(切记如果主从在同一台机器上不要,使用了同一个端口,)
步骤四、停到主从,然后生成key文件。步骤如下:
openssl rand -base64 741 > /root/mongo-keyfile会在root的宿主目录下生成一个文件mongo-keyfile文件 ll一下,看一下此文件大小,我第一次生成的时候文件大小为0,导致启动的时候失败
第五步、启动主从两个mongo。步骤如下
mongod --dbpath=/usr/local/mongodb/data/mongodb_27017/ --fork --logpath=/var/log/mongod.log --port 27017 --auth --master --keyFile /root/mongo-keyfile mongod --dbpath=/usr/local/mongodb/data/mongodb_27018/ --fork --logpath=/var/log/mongod27018.log --port 27018 --slave --source=127.0.0.1:27017 --auth --keyFile /root/mongo-keyfile这样当操作主的时候 从自然也会跟着变化了
关于mongodb的账号设置管理与非管理员设置
上面已经阐述了关于创建 “管理员”账号的操作方法,此处不就在阐述,如下内容阐述如何 创建普通用户权限
创建logdb库的普通用户,这个用户只可以操作本数据库,代码如下
#创建一个可读写账户 use logdb; db.addUser('username','password'); #创建一个只读账户 use logdb; db.addUser('username','password',true)
本文出自 “精忠报国” 博客,转载请与作者联系!
相关文章推荐
- Ubuntu系统中安装MongoDB及其启动命令mongod的教程
- 基于linux的mongodb3.2副本集+分片集群搭建
- 基于C#的MongoDB数据库开发应用(2)--MongoDB数据库的C#开发
- Centos上安装nginx+nodejs+express+mongodb环境.
- MongoDB篇——Java Maven项目中使用MongoDB GridFS上传音频图片
- mongodb replica set 和 nodejs中使用mongoose连接replica
- MongoDB + Java (MapReduce)
- Java实现对MongoDB的AND、OR和IN操作
- mongodb基础命令和知识
- 我快被mongodb弄毁了。。
- mongodb中的populate方法
- MongoDB 3.2 On CentOS
- MongoDB 修改器
- robomongo 连不上mongodb 权限问题
- Zabbix MongoDB监控
- MongoDB分片实战(二):Sharding
- MongoDB分片实战(一):集群搭建
- mongodb 报错 Error: Cannot find module '../build/Release/bson'解决办法
- MongoDB 基础命令使用学习记录
- node + mongodb建站