MongoDB初试备份及恢复
MongoDB作为文档数据库,有
1.登录MongoDB官网,地址:https://www.mongodb.com/download-center#community , 根据自己操作系统下载相应版本并安装。
2.启动mongodb 服务,进入mongodb的安装文件目录内。D:\Program Files\MongoDB\Server\3.4\bin
启动服务指令:mongod.exe -dbpath “D:\Program Files\MongoDB\data”

服务启动之后,最后一行会提示已经占用 27017端口了,可以进行简单的本地连接或是远程连接了。
3.本地连接:重新在启动一个cmd窗口,输入安装目录之后直接输入mongo(或是mongo.exe)或者输入
4.MongoDB备份就恢复
cmd 进入MongoDB下bin目录,例如:cd D:\Program Files\MongoDB\Server\3.4\bin
备份命令:>mongodump -h dbhost -d dbname -o dbdirectory
恢复命令:>mongorestore -h <hostname><:port> -d dbname <path>
(备份) 或 mongorestore (还原) -h 127.0.0.1:10001 -d test --directoryperdb /usr/local/data/lietou/

至此mongodb数据库已经启动。后面操作就是使用mongodb命令操作了。
mongodb命令教程地址:http://www.runoob.com/mongodb/mongodb-databases-documents-collections.html
4.远程连接
远程连接:mongo 100.1.6.151:27017(远程ip地址)
五、 用web 查看:
http://100.1.6.148:27017/
db.adminCommand({getLog: "*" })
配置权限需要用户名密码登录
> use EFamilyDB
switched to db EFamilyDB
> db.createUser({user:"root",pwd:"legensity",roles:["userAdmin"]})
Successfully added user: { "user" : "root", "roles" : [ "userAdmin" ] }
这个例子创建了一个名为 root 的用户管理员。创建完了这个用户之后,我们应该马上以该用户的身份登录:
> db.auth("root","legensity")
如何创建数据库用户
首先保证你已经以用户管理员的身份登录 admin 数据库。然后用 use 命令切换到目标数据库,同样用 db.createUser() 命令来创建用户,其中角色名为 “readWrite”。
普通的数据库用户角色有两种,read 和 readWrite。顾名思义,前者只能读取数据不能修改,后者可以读取和修改。
下面是一个例子:
> use EFamilyDB
switched to db test
> db.createUser({user:"legensity",pwd:"legensity",roles:["readWrite"]})
Successfully added user: { "user" : "legensity", "roles" : [ "readWrite" ] }
> db.auth("legensity","legensity")
1
重启MongoDB服务:
以管理员进入cmd界面
cd C:\Program Files\MongoDB\Server\3.4\bin
mongod.exe -dbpath "E:\Database\MongoDB\Data" --auth
// --auth 记得一定要加上
这样 MongoDB 的数据安全性就得到保障了,没有登录的客户端将无法执行任何命令。
C#连接MongoDB数据库连接字符串
MongoDB 标准连接字符串
mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]
mongodb:// 是连接字串必须的前缀字串
username:password@ 可选项,连接到数据库后会尝试验证登陆
host1 必须的指定至少一个host
:portX 可选项,默认连接到27017
/database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开admin数据库。
?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开
连接选项包括:
Replica set:
replicaSet=name
驱动会校验replica set的名字。意味着给定的hosts是主库(seed list),驱动将试图找到replica set中的所有成员。(•The driver verifies that the name of the replica set it connects to matches this name. Implies that the hosts given are a seed list, and the driver will attempt to find all members of the set.)
Single server:
slaveOk=true|false
自由选项:
safe=true|false
true: 驱动程序会在提交每次更新操作后执行getLastError命令以确认更新是有效的(参见w和wtimeoutMS)
false:驱动程序在每次更新操作后不会执行getLastError
w=n
驱动在getLastError命令加上{ w : n } 参数。意味着safe=true
wtimeoutMS=ms
驱动在getLastError命令加上{ wtimeout : ms }参数。意味着safe=true.
fsync=true|false
true: 驱动在getLastError命令加上{ fsync : true } 参数。意味着safe=true.
false: 驱动不在getlasterror 命令加fsync参数。
journal=true|false
true: 同步到 journal. 意味着safe=true.
connectTimeoutMS=ms
设置建立连接超时,单位ms
socketTimeoutMS=ms
设置socket发送或接受超时时间,单位ms
这些选项都是大小写不敏感的。
连接MongoDB(默认连接到localhost:27017)
使用用户fred和密码foobar连接
使用用户fred和密码foobar连接,指定数据库baz
连接到两台服务器组成的Replica Sets
连接到三台本地服务器组成的Replica Sets(分别使用27017、27018和27019端口)
连接到三台服务器组成的Replica Sets,把所有写操作集中在主库,读操作分布在各丛库
使用安全模式连接
安全模式下连接到一组Replica Sets,等待至少两台机器同步成功,并设置两秒的超时时间
下载了最新mongodb3.03版本,当使用--auth 参数命令行开启mongodb用户认证时遇到很多问题,现总结如下:
(百度上搜到的基本都是老版本的,看到db.addUser的就是,请忽略)
Windows下我做了一个bat文件,用来启动mongodb,命令行如下:
mongod --dbpath db\data --port 27017 --directoryperdb --logpath db\logs\mongodb.log --logappend --auth
最后的参数就是开启和关闭认证,如果是conf配置文件,应该是auth=true或false
1,首先关闭认证,也就是不带--auth参数,启动mongodb
2,使用命令行进入mongodb目录,输入mongo命令,默认进入test数据库
3,use userdb 切换到自己的数据库,输入db,显示userdb
4,创建用户,角色为dbOwner,数据库为userdb,命令行应该是db.createUser({user:'myuser',pwd:'123456',roles:[{role:'dbOwner',db:'userdb'}]})
5,切换到admin数据库,use admin,db ,显示admin,db.shutdownServer()关闭服务器,填上认证参数,启动mongodb;以前的版本此时使用mongovue就可以使用myuser登录到userdb数据库上了,但是3.0.3版本不行,打开mongodb.log文件发现如下错误
authenticate db: userdb { authenticate: 1, nonce: "xxx", user: "myuser", key: "xxx" }
2015-06-02T09:57:18.877+0800 I ACCESS [conn2] Failed to authenticate myuser@userdb with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document
此1-5步骤针对是3.0.3以前版本已经ok,如果是3.0.3,mongodb加入了SCRAM-SHA-1校验方式,需要第三方工具配合进行验证,下面给出具体解决办法:
首先关闭认证,修改system.version文档里面的authSchema版本为3,初始安装时候应该是5,命令行如下:
> use admin
switched to db admin
> var schema = db.system.version.findOne({"_id" : "authSchema"})
> schema.currentVersion = 3
3
> db.system.version.save(schema)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
不过如果你现在开启认证,仍然会提示AuthenticationFailed MONGODB-CR credentials missing in the user document
原因是原来创建的用户已经使用了SCRAM-SHA-1认证方式
> use admin
switched to db admin
> db.system.users.find()
[...]
{ "_id" : "userdb.myuser", "user" : "myuser", "db" : "userdb", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "XXXXXXXXXXXXXXXXXXXXXXXX", "storedKey" : "XXXXXXXXXXXXXXXXXXXXXXXXXXX", "serverKey" : "XXXXXXXXXXXXXXXXXXXXXXXXXXX" } }, "roles" : [ { "role" : "dbOwner", "db" : "userdb" } ] }
解决方式就是删除刚刚创建的用户,重新重建即可:
> use userdb
switched to db userdb
> db.dropUser("myuser")
true
>db.createUser({user:'myuser',pwd:'123456',roles:[{role:'dbOwner',db:'userdb'}]})
然后关闭服务器,开启认证,重启服务器,用mongovue连接,一切OK
MongoDB初试备份及恢复的更多相关文章
- MongoDB操作-备份和恢复,导入和导出
mongodb数据备份和恢复主要分为二种:一种是针对库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport 1. 常用命令格式 mongod ...
- MongoDB操作-备份和恢复
Mongodb数据库操作-备份 恢复 导出 导入 mongodb数据备份和恢复主要分为二种:一种是针对库的mongodump和mongorestore,一种是针对库中表的mongoexport和mon ...
- NoSQL 数据库案例实战 -- MongoDB数据备份、恢复
MySQL数据迁移到MongoDB数据库中 前言 一.数据备份 二.数据恢复 前言 本环境是基于 Centos 7.8 系统构建mongodb-enterprise-4.2.8学习环境具体构建,请参考 ...
- Mongodb的备份,恢复,导入与导出(cmd命令行实现)
要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下命令均在cmd ...
- MongoDB 数据备份和恢复 --- MongoDB基础用法(七)
数据备份 在Mongodb中我们使用mongodump命令来备份MongoDB数据.该命令可以导出所有数据到指定目录中. mongodump命令可以通过参数指定导出的数据量级转存的服务器. mongo ...
- MongoDB的备份和恢复
1.导出数据库/备份: @echo off F: cd F:\software1\mongdb\mongodb-win32-x86_64-\bin start mongodump.exe -h -d ...
- MongoDB数据库备份和恢复
1.数据库备份 mogodbdump -h dbhost -d dbname -o dbdirectory -h: 服务器地址,也可以指定端口号 -d: 需要备份的数据库的名称 -o: 备份的数据库存 ...
- 通过mongodump和mongorestore实现Mongodb备份和恢复
Mongodb自带了mongodump和mongorestore这两个工具来实现对数据的备份和恢复. mongodump能够在Mongodb运行时进行备份,它的工作原理是对运行的Mongodb做查询, ...
- MongoDB整库备份与还原以及单个collection备份、恢复方法
mongodb数据库维护离不开必要的备份.恢复操作,而且一般不会出错,所以我们在使用的时候大部分时候使用备份和恢复操作就可以了 mongodump.exe备份的原理是通过一次查询获取当前服务器快照 ...
随机推荐
- HDU-3506 Monkey Party (环形石子合并)
题目大意:n堆石子围成一圈,每堆石子的块数已知,每次可以将相邻的两堆合并到一堆,块数变为两堆之和,代价也为两堆石子块数之和.求合并到一堆的最小代价. 题目分析:先通过将前n-1依次个移到第n个后面,将 ...
- 在oaf中集成SpringLoaded实现热部署
首先声明:其实JRebel和Spring-Loaded就是一个开发环境下的利器,skip build and redeploy process,大大提升了工作效率!而非生产环境的利器... 不要在生产 ...
- cocos2d-x安装教程
cocos2d-x安装教程 cocos的安装方法有多种,今天讲的是其中一种,使用cocos的源代码直接进行编译. 下载cocos2d-x的源代码,提供两种方式给大家 -- 中文官网下载 -- 英文官网 ...
- CF 459A && 459B && 459C && 459D && 459E
http://codeforces.com/contest/459 A题 Pashmak and Garden 化简化简水题,都告诉平行坐标轴了,数据还出了对角线,后面两个点坐标给的范围也不错 #in ...
- Python & PyCharm & Django 搭建web开发环境(续)
由于Django自带轻量级的server,因此在前篇博文中,默认使用该server,但实际生产中是不允许这么干的,生产环境中通常使用Apache Httpd Server结合mod_wsgi.so来做 ...
- sql server 的变量
对于占用关键字等不符合规则的命名,可使用中括号[ ]括起来. 局部变量: 局部变量名必须以@开头,作用范围仅为程序内部. 常用用途: 1.作为计数器计算循环执行的次数或控制循环执行的次数 2.保存数据 ...
- Maven中使用Jetty容器
1.在pom.xml中添加Jetty的插件 <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId ...
- DevExpress XtraScheduler日程管理控件应用实例(1)-- 基本使用
在一些应用场景中,我们可能需要记录某一天,某个时段的日程安排,那么这个时候就需要引入了 DevExpress 的日程控件XtraScheduler 了,这个控件功能非常强大,提供了很好的界面展现方式, ...
- 【重大更新】DevExpress v17.2新版亮点—WinForms篇(二)
用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.开篇介绍了DevExpress WinForms v17.2 Data Grid Control ...
- 借鉴seisman安装软件时的文件放置选择
对于大型的软件包的安装来说: 当下载成功一个软件的压缩包后: tar -xvf xxxx.tgz ./configure --prefix=/opt/xxxx make sudo make insta ...