一、启动项

1、在启动数据库服务时可以在命令行输入mongod命令,然后直接带一些参数,比如“mongod --dbpath D:\Installations\MongoDB-2.4.6\MongoDBDATA”,还可以将mongod命令后的那些参数写入一个配置文件中, 然后在命令行中使用--config参数指定配置文件,比如将--dbpath参数写入文件中,如下图:

然后在命令行中使用mongod命令加上--config参数一样可以启动数据库服务,如下图:

2、要查看启动数据库服务有哪些参数可以给我们使用,可以使用“mongod --help”命令查看;另外在这个链接中有中文的参数说明(http://www.uspcat.com/forum.php?mod=viewthread&tid=7722&extra=page%3D1)。

3、MongoDB默认的端口是27017,Web访问端口是28017,Web访问端口会是默认端口大小再加1000。比如指定MongoDB的端口是8888,则Web端口会是9888,如下图:

4、停止MongoDB数据库服务

  • 直接按下Ctrl+C。
  • 登录admin数据库,使用db.shutdownServer()命令,如下图:

二、导入与导出、运行时备份与恢复

1、导出

导出可以使用mongoexport命令,导出会中断其它操作。常用参数:

  • -d:指明要导出的数据库
  • -c:指明要导出的集合
  • -o:指明要导出的文件名
  • --host:指明数据库主机地址(不写默认就是本机)
  • --port:指明数据库端口(不写默认就是27017)

如下图:导出mdb数据库中的person集合

2、导入

导入可以使用mongoimport命令,导入也会中断其它操作。常用参数:

  • --db:指明要导入到的数据库(如果数据库不存在会自动创建)
  • --collection:指明要导入到的集合(如果集合不存在会自动创建)
  • --file:数据文件地址
  • --host:指明数据库主机地址(不写默认就是本机)
  • --port:指明数据库端口(不写默认就是27017)

如下图:导入数据到mdb数据库中的person集合

3、运行时备份

运行时备份可以使用mongodump命令,它不会中断其它操作,但可能会遗漏数据,因为可能内存中的数据尚未写回数据库中。如下图:备份mdb数据库

4、运行时恢复

运行时恢复可以使用mongorestore命令,如下图:恢复mdb数据库

5、懒人备份

MongoDB是文件数据库,所以可以用拷贝文件的方式进行备份。

三、Fsync锁与数据修复

1、正如上面所说的运行时备份,它虽然不会中断其它操作,但是可能会遗漏数据,因为它只会备份数据库,缓冲池中没有来得及写回数据库中的数据可能就 没有备份。所以这个时候就可以用到Fsync锁,加上锁后,缓冲池的数据先写回数据库中,然后进行备份或者是恢复,完成后再解锁。如下图:

2、上锁和解锁

  • 上锁:上锁只能用在admin数据库上,如下图:

  • 解锁:从上图中可以发现解锁可以用db.fsyncUnlock()的方式。

3、数据修复

当停电等不可逆转情况发生,由于MongoDB的存储结构导致会产生垃圾数据,这时候就可以使用数据库的自我修复,命令为db.repairDatabase()。

四、用户管理与安全认证

1、添加用户

为某个数据库添加用户:db.addUser("用户名", "密码")。如下图:为admin数据库添加用户admin001,密码123456,为mdb数据库添加用户mdb001,密码123456

然后在数据库中就会生成一个叫做system.users的集合,里面就保存了该数据库的用户信息,如下图:

2、安全认证

在启动数据库时如果没有加入--auth参数,则MongoDB默认是不会进行安全检查的,不需要用户名和密码就能够进入数据库进行操作了,如下图:进入mdb数据库无法登录进行操作

当启用了安全认证后进入某个数据库需要使用该数据库中的用户名和密码登录后才能进行操作,如下图:首先是进入test数据库,然后切换到mdb数据库,然后使用之前为mdb数据库创建的用户“mdb001”登录,然后该用户就可以进行数据库操作了

当启用了安全认证后,不是admin数据库的用户是不能使用“show dbs”命令的,如下图:

3、删除用户

进入到该数据库,然后删除该数据库中system.users集合中要删除的用户所在文档即可,如下图:

MongoDB 学习笔记(六):备份与用户管理的更多相关文章

  1. oracle学习笔记(一)用户管理

    --oracle学习第一天 --连接 @后面连接数据库实例,具体连接到那个数据库 conn scott/tiger@MYORA1; --修改密码 passw; --显示用户 show user; -- ...

  2. linux初级学习笔记七:linux用户管理,密码和组命令详解!(视频序号:04_1)

    本节学习的命令: 用户管理命令:useradd,userdel,id,finger,usermod,chsh,chfn,passwd,pwck, 组管理命令:groupadd,groupmod,gro ...

  3. linux初级学习笔记六:linux用户及权限详解!(视频序号:03_4)

    本节学习的命令:/etc/passwd,/etc/shadow,/etc/group文件详解 本节学习的技能: 安全上下文 文件与目录的权限管理 影子命令 用户,用户组类别详解 /etc/passwd ...

  4. MongoDB学习笔记六:进阶指南

    [数据库命令]『命令的工作原理』MongoDB中的命令其实是作为一种特殊类型的查询来实现的,这些查询针对$cmd集合来执行.runCommand仅仅是接受命令文档,执行等价查询,因此,> db. ...

  5. MongoDB学习笔记(六) MongoDB索引用法和效率分析

    MongoDB中的索引其实类似于关系型数据库,都是为了提高查询和排序的效率的,并且实现原理也基本一致.由于集合中的键(字段)可以是普通数据类型,也可以是子文档.MongoDB可以在各种类型的键上创建索 ...

  6. MongoDB学习笔记六—查询下

    查询内嵌文档 数据准备 > db.blog.find().pretty() { "_id" : ObjectId("585694e4c5b0525a48a441b5 ...

  7. MongoDB学习笔记(转)

    MongoDB学习笔记(一) MongoDB介绍及安装MongoDB学习笔记(二) 通过samus驱动实现基本数据操作MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB ...

  8. MongoDB学习笔记(三)--权限 && 导出导入备份恢复 && fsync和锁

    权限                                                                                             绑定内网I ...

  9. Linux学习笔记(六) 进程管理

    1.进程基础 当输入一个命令时,shell 会同时启动一个进程,这种任务与进程分离的方式是 Linux 系统上重要的概念 每个执行的任务都称为进程,在每个进程启动时,系统都会给它指定一个唯一的 ID, ...

  10. MongoDB学习笔记(六)--复制集+sharding分片 && 总结

    复制集+sharding分片                                                               背景 主机 IP 服务及端口 Server A ...

随机推荐

  1. 关于虚拟机中克隆的linux为什么不能开启网络服务

    将centos克隆了一份,启动后并配置好文件,发现网络服务中只有lo(loopback),而网卡(eth0)没有启动,一开始以为是通信模式(bridged,NAT,host-only)的选择问题,最后 ...

  2. lucene_06_solr域

    solr域在家目录下面\solr_home\collection1\conf中的schema.xml里面定义. 域必须要先在schema.xml下定义后才能使用. solr在操作Field域时需要在s ...

  3. Java代码模拟http请求的两种方式

    z这里用百度地图的逆地理编码接口为例, 第一种方式:(通过jdk中的java.net包) 引入工具类 import java.net.URL; import java.net.URLConnectio ...

  4. Ubuntu下ss的安装与使用

    不得不说,linux真的有种让人用上就爱上的魔力,正好最近Ubuntu出了16.04,便索性装了个win10+Ubuntu的双系统,也算是告慰那永远留在老硬盘里的虚拟机吧. 言归正传,换上Ubuntu ...

  5. linux 7.2 下安装maven

    由于现有项目采用maven打包所以需要安装maven 1.创建目录 mkdir /maven cd /maven 2.下载解压maven,这里选择maven版本为3.5.3 wget http://m ...

  6. ZOJ 3717

    这题是二分+2SAT. 总结一下SAT题的特征.首先,可能会存在二选一的情况,然后会给出一些矛盾.据这些矛盾加边,再用SAT判定. 这一道题好像不能直接用printf("%0.3lf&quo ...

  7. ural 1707. Hypnotoad's Secret(线段树)

    题目链接:ural 1707. Hypnotoad's Secret 题目大意:给定N和M,然后N组s0, t0, Δs, Δt, k,每组能够计算出k个星星的坐标:M组a0, b0, c0, d0, ...

  8. [Javascript Crocks] Safely Access Object Properties with `prop`

    In this lesson, we’ll use a Maybe to safely operate on properties of an object that could be undefin ...

  9. swift 笔记 (十四) —— 构造过程

    构造过程 为了生成类.结构体.枚举等的实例,而做的准备过程,叫做构造过程. 为了这个过程,我们一般会定义一个方法来完毕,这种方法叫做构造器.当然它的逆过程,叫做析构器,用于在实例被释放前做一些清理工作 ...

  10. STM32F4——GPIO基本应用及复用

    IO基本应用 一.IO基本结构: 针对STM32F407有7组IO.分别为GPIOA~GPIOG,每组IO有16个IO口,则有112个IO口. 当中IO口的基本结构例如以下: 二.工作方式: ST ...