目录:

一.mongoDB 启动配置

二.导出,导入,运行时备份

三.Fsync锁,数据修复

四.用户管理,安全认证

一、启动项 mongod --help

C:\Windows\system32>mongod --help

1.常用配置项

--dbpath

指定数据库的目录,默认在window下是c:\data\db\

--port

指定服务器监听的端口号码,默认是27017

--fork

用守护进程的方式启动mongoDB

--logpath

指定日志的输出路径,默认是控制台

--config

指定启动项用文件的路径

--auth

用安全认证方式启动数据库(MongoDB默认不启用)

2.利用config配置文件来启动数据库改变端口为8888

①建立一个mongodb.config文件

指定数据库文件的目录和要使用的端口号

dbpath = D:\MongoDBData

port = 8888

②输入mongod --config D:\MongoDB\mongodb.config 启用配置

③启动MongoDB

Cmd中输入 mongo 127.0.0.1:8888/admin

3.停止mongoDB服务

①ctrl+c 组合键可以关闭数据库

②admin数据库命令关闭数据

二、导出,导入,运行时备份

1.导出数据(中断其他操作)

Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。

导出命令选项说明:

  • -h:指明数据库宿主机的IP
  • -u:指明数据库的用户名
  • -p:指明数据库的密码
  • -d:指明数据库的名字
  • -c:指明collection的名字
  • -f:指明要导出那些列
  • -o:指明到要导出的文件名
  • -q:指明导出数据的过滤条件

例:

①把数据库mongoDBTest中的Students导出

使用mongoexport命令进行导出数据,注意不添加host和port,默认使用的是host=127.0.0.1、port=27017

最后查看导出的路径是否有刚刚操作后的文件。

默认是导出json,但是也可以指定导出csv文件,这个就要使用--csv参数和-f参数进行组合

上图第一次失败的原因在于,没有指定需要导出的列,所以要使用-f来进行指定。

2.导入数据(中断其他操作)

Mongodb中的mongoimport工具可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入JSON格式数据,也可以导入CSV格式数据

 导入命令选项说明: 

  • -h:指明数据库宿主机的IP
  • -u:指明数据库的用户名
  • -p:指明数据库的密码
  • -d:指明数据库的名字
  • -c:指明collection的名字
  • -f:指明要导入那些列

例:

①把文档Students导入到mongoDBTest数据库

先把mongoDBTest中的Students进行删除

> db.Students.drop()

导入刚刚的Students.cvs文件

参数说明:

--type:指明要导入的文件格式

--headerline:指明第一行是列名,不需要导入

--file:指明要导入的文件

查看导入完成的结果

3.MongoDB的备份

用mongodump 来做MongoDB 的库或表级别的备份

  • -h:指明数据库宿主机的IP
  • -u:指明数据库的用户名
  • -p:指明数据库的密码
  • -d:指明数据库的名字
  • -c:指明collection的名字
  • -o:输出目录
  • -q:json query(json查询)

例:

备份MongoDBTest数据库

C:\Windows\system32>mongodump -d mongoDBTest -o D:\mongoDBTest

D:\mongoDBTest是存放备份数据的目录

4.MongoDB的恢复

用mongorestore 来做MongoDB 的库或表级别的数据恢复

  • -u:指明数据库的用户名
  • -p:指明数据库的密码
  • -d:指明数据库的名字
  • -c:指明collection的名字

例:

先删除MongoDBTest然后在进行恢复

> db.dropDatabase()

{ "dropped" : "mongoDBTest", "ok" : 1 }

恢复:

C:\Windows\system32>mongorestore -d mongoDBTest D:\mongoDBTest\mongoDBTest

三、Fsync锁和数据修复

为什么有锁的概念呢,这个和MongoDB的是实现机理有关,在数据库和用户读写直接有一个缓冲池,当用户进行备份的时候只备份数据库中的内容,缓冲池中的内容就不进行备份了,这时锁的作用就体现了,上锁之后可以将缓冲池的数据全部先放入数据库,这样就保证了数据的完整性。

2.上锁和解锁

注意:上锁和解锁要切换到admin数据库

上锁

db.runCommand({fsync:1,lock:1});

解锁

db.currentOp()

3.数据修复

当停电等不可逆转灾难来临的时候,由于mongodb的存储结构导致会产生垃圾数据,在数据恢复以后这垃圾数据依然存在,这是数据库提供一个自我修复的能力.使用起来很简单

db.repairDatabase()

四、用户管理和安全认证

1.添加一个用户

db.addUser(“名称”,”密码”);

2.启用用户

db.auth(“名称”,”密码”)

3.安全检查 --auth

例:

①创建一个属于admin数据库的用户

> db.addUser("Li","123");

WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead

Successfully added user: { "user" : "Li", "roles" : [ "root" ] }

②创建一个数据库mongoDBTest的用户

> use mongoDBTest

switched to db mongoDBTest

> db.addUser("LiCheng","123");

WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead

Successfully added user: { "user" : "LiCheng", "roles" : [ "dbOwner" ] }

③首先启用安全检查

修改mongodb.config为如下:

dbpath = D:\MongoDBData

auth=true

启动MongoDB服务

C:\Windows\system32>mongod --config D:\MongoDB\mongodb.config

④test用户非mongoDBTest是不能操作数据库的

使用test用户登录,并切换到mongoDBTest数据库,查看Students文档的内容

C:\Windows\system32>mongo 127.0.0.1:27017/test

MongoDB shell version: 2.6.5

connecting to: 127.0.0.1:27017/test

> use mongoDBTest

switched to db mongoDBTest

> db.Students.find()

error: { "$err" : "not authorized for query on mongoDBTest.Students", "code" : 13 }

>

⑤切换用户(启用自己的用户才能访问)

> db.auth("LiCheng","123")

1

> db.Students.find()

{ "_id" : 1, "name" : "Zhao", "age" : 25, "country" : "USA", "sex" : "M" }

{ "_id" : 2, "name" : "Qian", "age" : 22, "country" : "USA", "sex" : "M" }

{ "_id" : 3, "name" : "Sun", "age" : 26, "country" : "USA", "sex" : "M" }

{ "_id" : 4, "name" : "Li", "age" : 27, "country" : "China", "sex" : "" }

{ "_id" : 5, "name" : "Zhou", "age" : 30, "country" : "China", "sex" : "" }

{ "_id" : 6, "name" : "Wu", "age" : 27, "country" : "Japan", "sex" : "" }

{ "_id" : 7, "name" : "Zheng", "age" : 27, "country" : "UK", "sex" : "" }

{ "_id" : 8, "name" : "Wang", "age" : 26, "country" : "Korea", "sex" : "" }

{ "_id" : 9, "name" : "Xu", "age" : 26, "country" : "Japan", "sex" : "" }

>

⑥非admin数据库的用户不能使用数据库命令

继续使用LiCheng用户

> show dbs

2016-03-28T11:47:21.698+0800 listDatabases failed:{

"ok" : 0,

"errmsg" : "not authorized on admin to execute command { listDatabases:1.0 }",

"code" : 13

} at src/mongo/shell/mongo.js:47

>

⑦admin数据库中的数据经过认证为管理员用户

切换到admin用户登录,再启用Li用户

C:\Windows\system32>mongo 127.0.0.1:27017/admin

MongoDB shell version: 2.6.5

connecting to: 127.0.0.1:27017/admin

> db.auth("Li","123")

1

> show dbs

admin        0.078GB

local        0.078GB

mongoDBTest  0.078GB

>

⑧.用户删除操作

db.system.users.remove({user:"LiCheng"});

MongoDB启动配置等的更多相关文章

  1. mongodb启动命令与端口设置

    一.mongodb安装和配置 1.创建tools目录,用于存放安装包 cd /usr/local mkdir -p tools cd tools 2.下载mongodb包(其它版本请自行下载) wge ...

  2. MongoDB的配置、启动、关闭

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系 ...

  3. Linux下Mongodb安装和启动配置

    1.下载安装包 wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz 下载完成后解压缩压缩包 tar zxf mongod ...

  4. Linux下Mongodb安装和启动配置 原

    1.安装 略 2.配置 01.mkdir /usr/local/mongodb/data 0.touch /usr/local/mongodb/logs 03.cd /usr/local/mongod ...

  5. Linux下Mongodb安装和启动配置 转载

    原文地址:https://www.cnblogs.com/Jimmy104/p/6181899.html 以下文章为转载,感谢网友,原文链接 http://blog.csdn.net/yuwenrul ...

  6. mongodb分片配置

    通过YUM库自动安装Mongodb 手动安装配置mongodb 验证mongodb主从复制过程 验证mongodb副本集并实现自动切换 实验mongodb使用gridfs存放一个大文件 1.创建数据目 ...

  7. Mongodb启动命令mongod参数说明

    Mongodb启动命令mongod参数说明 mongod的主要参数有: 基本配置 ----------------------------------------------------------- ...

  8. mongoDB启动参数备忘

    本文转载 Mongodb启动命令mongod参数说明   mongod的主要参数有:    基本配置   ----------------------------------------------- ...

  9. MongoDB C Driver and APIinstances linux MongoDB安装配置

    <一,linux平台MongoDB安装配置>在这我们使用的Centos6 yum部署的,你想搞编译,自个干!

随机推荐

  1. HDU-4679 Terrorist’s destroy 树形DP,维护

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4679 题意:给一颗树,每个边有一个权值,要你去掉一条边权值w剩下的两颗子树中分别的最长链a,b,使得w ...

  2. android事件分发笔记

    1.SimpleOnGestureListener 遇到的问题: 自己定义一个按钮继承自Button,一开始改变按钮颜色的操作放在onTouchEvent的ATION_DOWN里触发. 这时问题来了, ...

  3. MySQL Workbench 导出数据库脚本(图文)

    1.如下图红框所示,在Server Administration那里,点击"New Server Instance" 2.如下图所示,如果是连接本地数据库,则选localhost, ...

  4. delphi 调用 webservice (.NET C#版)

    uses XMLIntf, XMLDoc; XML to XTR文件转换 .File-->open打开你要分析的XML文件 .在左边选择你要分析的接点,双击加到中间的转换列表中 .Create- ...

  5. ORA-12154 TNS无法解析指定的连接标识符

    又是这个百无聊赖的问题,尽管问题芝麻点大,却让我们好找啊! 非常久没有安装oracle了.今天安装11g的时候,用PLSQL Developer连接时,就出现了这个俗不可耐的问题:ORA-12154 ...

  6. 从零开始学android开发-四大组件之一 Activity

    1.Activity是Android四大组件(Application Components)之一,简单来说Activity就是平常所见到的用户界面,一般情况下,一个Activity所占的窗口是满屏的, ...

  7. Nuget控制台 - 给你的快速添加缺少的包

    利用命令行安装包

  8. node.js在windows下的学习笔记(8)---进程管理Process

    process是一个全局内置对象,可以在代码中的任何位置访问此对象,这个对象代表我们的node.js代码宿主的操作系统进程对象. 使用process对象可以截获进程的异常.退出等事件,也可以获取进程的 ...

  9. nonce和timestamp在Http安全协议中的作用

    前段时间给客户网站做新浪微博账号登录功能,对OAuth协议以及相关的一些安全协议做了一些研究,顺便就记录一下学习心得吧.在这里就不打算具体讲OAuth的协议流程了,而是针对OAuth请求头里的nonc ...

  10. 区域医疗移动医疗影像解决方案2--基于FLEX的PACS

    基于Flex的PACS和基于HTML5的PACS,都不是基于DICOM的WADO的方式,即所有的图像操作,移动.缩放.旋转.测量.伪彩.窗宽窗位调整等都是在本地浏览器能够完成,不用和服务器进行频繁的交 ...