1. 启动和停止MongoDB;

2. 访问控制;

3. 命令行操作;

4. 进程控制;

5. MongoDB的监控;

6. MongoDB数据的导入、导出;

7. MongoDB备份、还原。

  1. MongoDB Server以服务方式延迟启动,手动停止即可。

2

在下面的流程中,首先在尚未开启访问权限控制的MongoDB实例中添加一个用户管理员账号,然后再开启访问权限控制。
1.启动MongoDB服务(禁用访问权限控制)
mongod --port27017--dbpath /data/db1

2.连接至MongoDB实例
mongo --port 27017

3.添加管理员账号
use admin
db.createUser({user: "myUserAdmin", pwd: "abc123", roles: [{role: "userAdminAnyDatabase", db: "admin"}]})

4.重启MongoDB实例,并启用访问权限控制
mongod --auth --port27017--dbpath /data/db1

5.连接至MongoDB实例
mongo --port27017
切换至admin库,并登陆
use admin
db.auth("myUserAdmin","abc123")

6.添加普通用户账号
use test
db.createUser({user: "myTester", pwd: "xyz123", roles: [{role: "readWrite", db: "test"}, {role: "read", db: "reporting"}]})

7.使用普通用户账号登陆

mongo --port27017
use test
db.auth("myTester","xyz123")

5

MongoDB 监控

在你已经安装部署并允许MongoDB服务后,你必须要了解MongoDB的运行情况,并查看MongoDB的性能。这样在大流量得情况下可以很好的应对并保证MongoDB正常运作。

MongoDB中提供了mongostat 和 mongotop 两个命令来监控MongoDB的运行情况。

mongostat 命令

mongostat是mongodb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。

启动你的Mongod服务,进入到你安装的MongoDB目录下的bin目录, 然后输入mongostat命令,如下所示:

D:\set up\mongodb\bin>mongostat

以上命令输出结果如下:

mongotop 命令

mongotop也是mongodb下的一个内置工具,mongotop提供了一个方法,用来跟踪一个MongoDB的实例,查看哪些大量的时间花费在读取和写入数据。 mongotop提供每个集合的水平的统计数据。默认情况下,mongotop返回值的每一秒。

启动你的Mongod服务,进入到你安装的MongoDB目录下的bin目录, 然后输入mongotop命令,如下所示

C:\Users\nexxt>mongotop

带参数实例:

C:\Users\nexxt>mongotop 10

后面的10是<sleeptime>参数 ,可以不使用,等待的时间长度,以秒为单位,mongotop等待调用之间。通过的默认mongotop返回数据的每一秒。

Mongo --locks

报告每个数据库的锁的使用中,使用mongotop - 锁,这将产生以下输出:

输出结果字段说明:

ns:

包含数据库命名空间,后者结合了数据库名称和集合。

db:

包含数据库的名称。名为 . 的数据库针对全局锁定,而非特定数据库。

total:

mongod花费的时间工作在这个命名空间提供总额。

read:

提供了大量的时间,这mongod花费在执行读操作,在此命名空间。

write:

提供这个命名空间进行写操作,这mongod花了大量的时间。

  1. MongoDB数据的导入、导出;

导出数据 语法

mongoexport

-d 指明使用的库

-c 指明要导出的集合

-o 指明要导出的文件名

-csv 制定导出的csv格式

-q 过滤导出

--type<json|csv|tsv>

a.把数据库mydb中的student导出  --备份

mongoexport -d mydb -c student -o f:\a\student.json 或者

mongoexport --db mydb --collection student --out d:\a\student1.json

b.删除test数据库中的student

db.student.drop()

c.导入数据(中断其他操作)    --恢复

mongoimport --db mydb --collection student --file d:\a\student1.json 或者

mongoimport -d mydb -c student --file f:\a\student.json

mongo

use mydb

show collections

db.student.find()

db.student.count()

7. MongoDB备份、还原。

运行时备份  --像热备  整库备份

a.导出数据库

mongodump --host 127.0.0.1:27017 -d mydb -o d:\a\

b.删除整个数据库

mongo

use mydb

db

db.dropDatabase()

c.运行时恢复

mongorestore --host 127.0.0.1:27017 -d mydb d:\a\mydb

show dbs

use mydb

show collections

db.student.find()

3.懒人备份  --mongodb服务关闭后

mongoDB是文件数据库这其实就可以用拷贝文件的方式进行备份

MongoDB的管理的更多相关文章

  1. MongoDB基本管理命令

    MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表:而每个集合中 可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由 ...

  2. NoSQL学习二:MongoDB基本管理命令

    MongoDB命令学习  一.MongoDB命令帮助 在安装MongoDB后,启动服务器进程(mongod),可以通过在客户端命令mongo实现对MongoDB的管理和监控: 这是MongoDB最上层 ...

  3. MongoDB权限管理之用户名和密码的操作

    MongoDB默认是不需要输入用户名和密码,客户就可以登录的.但是出于安全性的考虑,我们还是要为其设置用户名和密码.本文主要介绍的是MongoDB权限管理之用户名和密码的操作,希望能对您有所帮助. 本 ...

  4. MongoDB——权限管理

    MongoDB--权限管理 MongoDB默认是没有权限验证的,但生产环境中,没有权限控制是很不安全的. 我们先不详谈太多概念,直接动手创建两个典型的账号: 超级管理员,类似sql server的sa ...

  5. 最佳的MongoDB客户端管理工具

    <最佳的MongoDB客户端管理工具> 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 一个好的MongoD ...

  6. MongoDB基本管理命令 [转]

    MongoDB基本管理命令 linux下配置安装mongodb 10分钟玩转mongoDB 官网安装教程 使用命令行方式连接mongodb: mongo /admin -u用户名 -p密码  --连接 ...

  7. MongoDB账号管理及实践

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 目前蜂巢(云计算基础服务)MongoDB上已经有数十个实例,其中不少是企业用户或公司内部产品用户的.用户多了 ...

  8. 浅析MongoDB用户管理

    浅析MongoDB用户管理 http://www.jb51.net/article/53830.htm mongodb3.03开启认证 http://21jhf.iteye.com/blog/2216 ...

  9. MongoDB 可视化管理工具

    MongoDB 可视化管理工具 (2011年10月-至今)   正文 该项目从2011年10月开始开发,知道现在已经有整整5年了.MongoDB也从一开始的大红大紫到现在趋于平淡.MongoCola这 ...

  10. MongoDB和Java(7):MongoDB用户管理

    最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...

随机推荐

  1. JS计算前一天或后一天,前一月后一月

    JS计算前一天或后一天,前一月后一月,上一天下一下,上一月下一月. 方法一: function ktkGetNextMonth(currentDate, scaleStep) { //scaleSte ...

  2. Centos7更改网卡名称Eth0并配置静态IP

    1.首先查看一下centos7的网卡名称 eno33554984 2.更改为centos7之前版本的网卡名称 3.更改网卡文件的名称 4.禁用可预测命名规则. 通过编辑 /etc/default/gr ...

  3. [0403]学习一个——苟(简单Java开发)

    学习一个--苟 1. 开发目的 拜读了某神犇的blog,感到了自身深深的不足.蒟蒻如我,决定提高一蛤自身的姿势水平,学习一个,使用Java重写用GreatestLanguage写的某小说网站的抓取器. ...

  4. Jenkins参数化构建(二)之 Maven command line使用Jenkins参数

    安装Extened Choice Parameter插件 General模块选择‘参数化构建过程’   3. maven command line中使用 clean test -DsuiteXmlFi ...

  5. 进度条的制作-python

    import time,sys def view_bar(num, total): rate = float(num) / float(total) rate_num = int(rate * 100 ...

  6. SourceTree/git解决pre-commit hook failed的问题

    一. git commit -m 'xxx' 出现问题 今天在上传项目的时候在commit阶段遇到一个问题,无论是在Sourcetree上传还是用命令git commit -m 'xxx'都报了一下错 ...

  7. P3146 [USACO16OPEN]248 & P3147 [USACO16OPEN]262144

    注:两道题目题意是一样的,但是数据范围不同,一个为弱化版,另一个为强化版. P3146传送门(弱化版) 思路: 区间动规,设 f [ i ][ j ] 表示在区间 i ~ j 中获得的最大值,与普通区 ...

  8. IDEA 的Class not found: "..."Empty test suite

    Junit测试的时候出现  IDEA 的Class not found: "..."Empty test suite问题. 尝试一下解决方法: 第一种方法: 1.modules&g ...

  9. AQS是什么?

    AQS介绍 AQS,即AbstractQueuedSynchronizer, 队列同步器,它是Java并发用来构建锁和其他同步组件的基础框架.来看下同步组件对AQS的使用: AQS是一个抽象类,主是是 ...

  10. strpos检测字符串是否包含元素

    <?php echo strpos('https://www.baidu.com','https',0); ?> 默认的第三个参数就是0. 第三个参数表示查找的起始位置. 如果不存在的话, ...