1、下载

    官网:http://www.runoob.com/mongodb/mongodb-window-install.html

    由于是在window下,所以我下载的是mongodb-win32-x86_64-2008plus-ssl-3.2.7-signed.msi,和普通安装软件exe一样,一直点下一步,中途改改安装路径。

  2、配置

    安装之后,还需要配置,比如数据库的数据安装路径,日志路径等等。

    MongoDB将数据目录存储在 db 目录下。但是这个数据目录不会主动创建,需要我们在安装完成后需要手动创建。

    为日志文件,数据文件和配置文件创建目录

    配置文件目录:D:\MongoData\config\mongod.cfg

    日志文件目录:D:\MongoData\dblog\

    数据文件目录:D:\MongoData\db\

    

    接着再配置mongod.cfg

    

systemLog:
destination: file
path: D:\MongoData\dblog\mongod.log
logAppend: true
storage:
journal:
enabled: true
dbPath: D:\MongoData\db
net:
port: #security:
#authorization: enabled

  3、安装服务

    配置好上面后,在到cmd中执行(使用管理员权限):

    D:\Program Files\MongoDB\Server\3.2\bin>mongod.exe --config "D:\MongoData\config\mongod.cfg" --install

    

     安装成功

    

   

    启动mongodb服务

      net start MongoDB

      

      

      服务成功启动

      可以看看日志文件:后来去查看日志文件: D:\MongoData\dblog\mongod.log
     

    

   关闭mongodb服务

    net stop MongoDB

    

    

   删除Windows服务

    两种方式:

    1、 D:\Program Files\MongoDB\Server\3.2\bin> mongod --config D:\MongoData\config\mongod.cfg --remove

      

     2、在系统管理员窗口输入:sc delete MongoDB

      

  4、用户权限设置

     1、MongoDB是没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。

    2、切换到admin数据库,添加的账号才是管理员账号。

    3、用户只能在用户所在数据库登录,包括管理员账号。

    4、管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。

    

   创建管理员账号

    在admin数据库中,添加一个用户并赋予userAdminAnyDatabase角色。

    例如,下面是在admin数据库中创建一个名为myUserAdmin用户。

    注意:你创建用户的这个数据库(这里就是admin数据库)是用户认证数据库, 尽管用户是在这个数据库认证,而用户又有其他数据库的角色;即,用户认证数据库不限制用户权限。

    在window管理员下启动cmd,并且连接上mongodb, 
    连接命令:D:\Program Files\MongoDB\Server\3.2\bin>mongo.exe

    创建用户命令:

use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "mypass123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
#结果
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}

    

    查看用户

    show users

    

    db.system.users.find()

    

  5、开启权限验证

    配置文件:D:\MongoData\config\mongod.cfg

    注意:要开启配置文件的authorization的权限


systemLog:
destination: file
path: D:\MongoData\dblog\mongod.log
logAppend: true
storage:
journal:
enabled: true
dbPath: D:\MongoData\db
net:
port: security:
authorization: enabled

    接着就是重启mongod实例。说明了就是重启mongodb服务。

  6、验证权限是否生效  

    

  7、添加普通用户

    1、一旦经过认证的用户管理员,可以使用db.createUser()去创建额外的用户,你可以分配mongodb内置的角色或用户自定义的角色给用户。

       2、这个myUserAdmin用户仅仅只有特权去管理用户和角色,myUserAdmin,如果你试图执行其他任何操作,例如在test数据库中的foo集合中去读数据,mongodb将返回错误。

    3、你创建用户的数据库(这里就是test数据库)是该用户认证数据库。尽管用户认证是这个数据库,用户依然可以有其他数据库的角色。即用户认证数据库不限制用户权限。

    

    7.1、创建读写用户

MongoDB shell version: 3.2.
connecting to: test
> use admin
switched to db admin
> db.auth('myUserAdmin', 'mypass123') > db.createUser(
... ... ... {
... ... ... user: "ott1",
... ... ... pwd: "ott1",
... ... ... roles: [
... ... ... { role: "readWrite", db: "OTT_DB" },
... ... ... ]
... ... ... }
... ... ... )
Successfully added user: {
"user" : "ott1",
"roles" : [
{
"role" : "readWrite",
"db" : "OTT_DB"
}
]
}
> use OTT_DB
switched to db OTT_DB
> db.auth("ott1","ott1")
Error: Authentication failed.

    从上面发现在use admin状态下创建数据库OTT_DB的用户ott1,在授权时失败

    先删除ott1

    删除命令:db.dropUser("ott1")

> use admin
switched to db admin
> db.auth("myUserAdmin","mypass123") > use OTT_DB
switched to db OTT_DB
> db.auth("ott1","ott1") > db.dropUser("ott1")
true
>

    因此在创建数据库OTT_DB用户之前,必须进入到OTT_DB状态

    

use OTT_DB
switched to db OTT_DB
> db.createUser(
... ... ... {
... ... ... user: "ott_test",
... ... ... pwd: "ott_test",
... ... ... roles: [
... ... ... { role: "readWrite", db: "OTT_DB" },
... ... ... ]
... ... ... }
... ... ... )
Successfully added user: {
"user" : "ott_test",
"roles" : [
{
"role" : "readWrite",
"db" : "OTT_DB"
}
]
}
>

    验证用户权限

    关闭mongo.exe,重新打开mongo.exe

    

    关闭mongo.exe,重新打开mongo.exe

    

    可以看出,进入OTT_DB数据库,要查看test集合里面的数据,必须先授权,输入用户名和密码,否则无法查询

    如果要删除ott_test ,必须首先首先:use admin 然后 db.auth('myUserAdmin', 'mypass123'),再use OTT_DB, 最后执行 db.dropUser("ott_test") 才能成功删除数据库 OTT_DB对应的用户

    7.2、创建只读用户

    给OTT_DB数据库创建只读用户ott2,注意:必须首先进入admin数据库,然后授权,然后进入OTT_DB数据库,然后才能创建用户

    

MongoDB shell version: 3.2.
connecting to: test
> use admin
switched to db admin
> db.auth('myUserAdmin', 'mypass123') > use OTT_DB
switched to db OTT_DB
> db.createUser(
... ... ... {
... ... ... user: "ott2",
... ... ... pwd: "ott2",
... ... ... roles: [
... ... ... { role: "read", db: "OTT_DB" },
... ... ... ]
... ... ... }
... ... ... )
Successfully added user: {
"user" : "ott2",
"roles" : [
{
"role" : "read",
"db" : "OTT_DB"
}
]
}
>

    关闭mongo.exe,重新打开mongo.exe,验证ott2用户是否是只读用户

    

MongoDB shell version: 3.2.
connecting to: test
> use OTT_DB
switched to db OTT_DB
> db.auth("ott2","ott2") > db.test.find()
{ "_id" : ObjectId("59f837e28d41d3c11f04f7c8"), "name" : "mike" }
{ "_id" : ObjectId("59f838bd38e747cd423fcb23"), "name" : "kite" }
> db.test.insert("name":"myname")
--31T17::54.586+ E QUERY [thread1] SyntaxError: missing ) after argument list @(shell):: > db.test.insert({"name":"myname"})
WriteResult({
"writeError" : {
"code" : ,
"errmsg" : "not authorized on OTT_DB to execute command { insert: \"test\", documents: [ { _id: ObjectId('59f8453659d24d08aaa61d31'), name: \"myname\" } ], ordered: true }"
}
})
>

    由此可见ott是只读用户

  8、MongoDB数据库角色

    内建的角色 
    数据库用户角色:read、readWrite; 
    数据库管理角色:dbAdmin、dbOwner、userAdmin; 
    集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 
    备份恢复角色:backup、restore; 
    所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 
    超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) 
    内部角色:__system

    角色说明: 
    Read:允许用户读取指定数据库 
    readWrite:允许用户读写指定数据库 
    dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile 
    userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 
    clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 
    readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 
    readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 
    userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 
    dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 
    root:只在admin数据库中可用。超级账号,超级权限

Windows MongoDB安装配置的更多相关文章

  1. Windows下安装配置MongoDB

    Windows下安装配置MongoDB 一,介绍 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB ...

  2. python爬虫-MongoDB安装配置

    MongoDB安装配置: 在安装配置MongoDB的过程中遇到了很多问题,现在重新梳理一遍安装流程.遇到的问题及其解决方法 系统版本:Windows 10 MongoDB版本:4.2.1 1.下载地址 ...

  3. 在windows下安装配置Ulipad

    在windows下安装配置Ulipad 今天推荐一款轻便的文本编辑器Ulipad,用来写一些小的Python脚本非常方便. Ulipad下载地址: https://github.com/limodou ...

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

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

  5. Windows平台安装配置mysql数据库

    Windows平台安装配置mysql数据库 作者:Eric 微信:loveoracle11g 去下载mysql软件 https://www.mysql.com/downloads/ https://d ...

  6. (转)windows 下安装配置 Nginx 详解

    windows 下安装配置 Nginx 详解 本文转自https://blog.csdn.net/kingscoming/article/details/79042874 nginx功能之一可以启动一 ...

  7. QT学习之windows下安装配置PyQt5

    windows下安装配置PyQt5 目录 为什么要学习QT 命令行安装PyQt5以及PyQt5-tools 配置QtDesigner.PyUIC及PyRcc 为什么要学习QT python下与界面开发 ...

  8. RabbitMQ学习在windows下安装配置

    RabbitMQ学习一. 在windows下安装配置 1.下载并安装erlang,http://www.erlang.org/download.html,最新版是R15B01(5.9.1).由于我机器 ...

  9. Windows下安装配置免安装MySQL5.7服务器

      Windows下安装配置免安装MySQL5.7服务器 1.下载.解压安装包 从MySQL官方网站上下载mysql-5.7.19-winx64.zip 下载完成后,把安装包解压到D:\DevSoft ...

随机推荐

  1. webpack3.0+总结

    ul>li{ color:blue; font-size:20px } .items>ul>li>ul>li{ color:crimson } --> webpac ...

  2. 洛谷P3402 【模板】可持久化并查集 [主席树,并查集]

    题目传送门 可持久化并查集 n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 ...

  3. Python并发编程-多进程进程锁

    from multiprocessing import Process import json import time from multiprocessing import Lock def sho ...

  4. java getenv getProperties区别

    网上很多使用的是getProperties.说获得系统变量,但是其实不正确.getProperties中所谓的"system properties"其实是指"java s ...

  5. ls 大全

    ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linu ...

  6. 密码嗅探工具dsniff

    密码嗅探工具dsniff   网络大量的服务都使用密码方式对使用者身份进行认证.如果使用非加密的方式传输,一旦数据被截获,就容易被嗅探到.Kali Linux预置了一款专用的密码嗅探工具dsniff. ...

  7. c++源文件后缀名问题

    VC里用cpp作后缀名, 在GCC里默认采用C.cc.cxx作为后缀名 .cpp, .h (VS file).cc, .h (GCC file)   C中: 头文件后缀名: .h 源文件后缀名: .c ...

  8. 【codeforces.com/gym/100240 J】

    http://codeforces.com/gym/100240 J [分析] 这题我搞了好久才搞出样例的11.76....[期望没学好 然后好不容易弄成分数形式.然后我‘+’没打..[于是爆0... ...

  9. [BJOI2011]禁忌 --- AC自动机 + 矩阵优化 + 期望

    bzoj 2553 [BJOI2011]禁忌 题目描述: Magic Land上的人们总是提起那个传说:他们的祖先John在那个东方岛屿帮助Koishi与其姐姐Satori最终战平.而后,Koishi ...

  10. [BZOJ4552][TJOI2016&&HEOI2016]排序(二分答案+线段树/线段树分裂与合并)

    解法一:二分答案+线段树 首先我们知道,对于一个01序列排序,用线段树维护的话可以做到单次排序复杂度仅为log级别. 这道题只有一个询问,所以离线没有意义,而一个询问让我们很自然的想到二分答案.先二分 ...