一、启动项

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. 用户输入input函数和代码注释

    一.读取用户输入 py3中input()读取用户输入,输出全部是默认str字符串数据类型,一般将其赋值变量,用户输入才继续往下走程序.(py2的不同已单独列出随笔) 二.注释 注释的作用:代码量大的时 ...

  2. datawhale爬虫实训4

    DataWhale-Task4(爬取丁香园2) 任务:使用lxml爬虫帖子相关的回复与部分用户信息(用户名,头像地址,回复详情) 难点:需要登录才能看到所有回复 浏览器登录上去,查看cookies信息 ...

  3. 5、SpringBoot+MyBaits+Maven+Idea+pagehelper分页插件

    1.为了我们平时方便开发,我们可以在同一个idea窗口创建多个项目模块,创建方式如下 2.项目中pom.xm文件的内容如下 <?xml version="1.0" encod ...

  4. vue+ElementUI 日期选择器 获取时间戳

    <div class="block"> <span class="demonstration">daterange</span&g ...

  5. 【ACM】hdu_1093_A+BV_201307261715

    A+B for Input-Output Practice (V)Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  6. 洛谷 P1649 [USACO07OCT]障碍路线Obstacle Course

    P1649 [USACO07OCT]障碍路线Obstacle Course 题目描述 Consider an N x N (1 <= N <= 100) square field comp ...

  7. PHP扩展开发--实验成功

    原文:http://kimi.it/496.html http://blog.csdn.net/u011957758/article/details/72234075 ---------------- ...

  8. 外网联接内网mssql

    參考地址:http://www.nat123.com/Pages_8_266.jsp 方法例如以下: 1.注冊一个账号,同一时候进入nat123官网加入dns域名解析 点击确认保存,刚刚加入的域名解析 ...

  9. 高效使用hive

    工作中常常使用hive.熟练使用hvie的配置參数能够更加高效的使用Hive Hive option: hive -f   script.hql : 从文件script.hql中的读取hql运行 hi ...

  10. 初探swift语言的学习笔记三(闭包-匿名函数)

    作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29353019 转载请注明出处 假设认为文章对你有所帮助,请通过留言 ...