MongoDB做为文档数据库,有html
1.登陆MongoDB官网,地址:https://www.mongodb.com/download-center#community , 根据本身操做系统下载相应版本并安装。vue
2.启动mongodb 服务,进入mongodb的安装文件目录内。D:\Program Files\MongoDB\Server\3.4\binweb
启动服务指令:mongod.exe -dbpath “D:\Program Files\MongoDB\data”mongodb
服务启动以后,最后一行会提示已经占用 27017端口了,能够进行简单的本地链接或是远程链接了。数据库
3.本地链接:从新在启动一个cmd窗口,输入安装目录以后直接输入mongo(或是mongo.exe)或者输入安全
4.MongoDB备份就恢复服务器
cmd 进入MongoDB下bin目录,例如:cd D:\Program Files\MongoDB\Server\3.4\binapp
备份命令:>mongodump -h dbhost -d dbname -o dbdirectorysocket
恢复命令:>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地址)
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(分别使用2701七、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