MongoDB启动配置等
目录:
一.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启动配置等的更多相关文章
- mongodb启动命令与端口设置
一.mongodb安装和配置 1.创建tools目录,用于存放安装包 cd /usr/local mkdir -p tools cd tools 2.下载mongodb包(其它版本请自行下载) wge ...
- MongoDB的配置、启动、关闭
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系 ...
- Linux下Mongodb安装和启动配置
1.下载安装包 wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz 下载完成后解压缩压缩包 tar zxf mongod ...
- Linux下Mongodb安装和启动配置 原
1.安装 略 2.配置 01.mkdir /usr/local/mongodb/data 0.touch /usr/local/mongodb/logs 03.cd /usr/local/mongod ...
- Linux下Mongodb安装和启动配置 转载
原文地址:https://www.cnblogs.com/Jimmy104/p/6181899.html 以下文章为转载,感谢网友,原文链接 http://blog.csdn.net/yuwenrul ...
- mongodb分片配置
通过YUM库自动安装Mongodb 手动安装配置mongodb 验证mongodb主从复制过程 验证mongodb副本集并实现自动切换 实验mongodb使用gridfs存放一个大文件 1.创建数据目 ...
- Mongodb启动命令mongod参数说明
Mongodb启动命令mongod参数说明 mongod的主要参数有: 基本配置 ----------------------------------------------------------- ...
- mongoDB启动参数备忘
本文转载 Mongodb启动命令mongod参数说明 mongod的主要参数有: 基本配置 ----------------------------------------------- ...
- MongoDB C Driver and APIinstances linux MongoDB安装配置
<一,linux平台MongoDB安装配置>在这我们使用的Centos6 yum部署的,你想搞编译,自个干!
随机推荐
- android sqlite 中存储 long 数据
在資料庫的技術中,一個資料庫(Database)表示應用程式儲存與管理資料的單位,應用程式可能需要儲存很多不同的資料,例如一個購物網站的資 料庫,就需要儲存與管理會員.商品和訂單資料.每一種在資料庫中 ...
- semget() semop()
semget() 可以使用系统调用semget()创建一个新的信号量集,或者存取一个已经存在的信号量集: 系统调用:semget();原型:intsemget(key_t key,int nsems, ...
- Go语言 字符串
在所有编程语言中都涉及到大量的字符串操作,可见熟悉对字符串的操作是何等重要. Go中的字符串和C#中的一样(java也是),字符串内容在初始化后不可修改. 需要注意的是在Go中字符串是有UTF-8编码 ...
- [Objective-c 基础 - 1.1] OC类
Obj-C中没有包得概念,使用前缀进行区分 自带类用NS开头命名 关键字使用@开头 A. 第一个OC程序 1. 导入Foundation框架的主头文件 #import <Foundation ...
- gtest框架使用
gtest文档说明: 由于公司单元测试的需要,自己花了大半天时间下载了一个gtest框架,使用了一些测试例子,总览了coderzh的玩转gtest测试框架,又看了几篇gtest博客,写下了以下内容,作 ...
- android studio简易了解第一部分
1.如果还没下载 jdk,先把jdk下载,然后下载android studio 安装 百度 android studio ,百度软件中心可以下载. Android官网可以下载: 网址: htt ...
- Asp.Net Mvc5 之Controller
经过前面介绍了路由系统之后,我们知道任何一个请求在经过asp.net url路由系统的拦截之后,会生成以controller/action 名称为核心的路由数据.asp.net mvc 根据此解析出目 ...
- android学习日记03--常用控件ListView
常用控件 8.ListView 列表视图,比如游戏的排行榜.列表数据可以根据屏幕大小自适应 列表的显示需要三个元素: a.ListVeiw:用来展示列表的View. b.适配器:用来把数据映射到Lis ...
- 定时自动同步文件,支持多文件夹同步,支持过滤文件和文件夹,解决FileSystemWatcher多次文件触发事件(源码)
博客园里面有很多同步工具和软件,关于FileSystemWatcher类解释的也很多,但收集了很多文章后,感觉没好的方法,自己没事写了一个定时文件同步,借鉴了很多博客园朋友的东西: 上主菜: 配置文件 ...
- Qt数据库(sqlite) — 总结
#include <QtSql>QT += sql QSqlDatabase类实现了数据库连接的操作QSqlQuery类用来执行SQL语句QSqlRecord类 封装数据库所有记录 第一: ...