windows10安装MongoDB详细教程!!!

场景说明:线上环境使用的Linux的MongoDB,本地为windows操作系统,为此搭建一个windows本地MongoDB左右开发测试使用。

1、初始化部署MongoDB

第一步需要下载windows版本的MongoDB,我这里下载使用的是3.4.3版本,最新版本已经更新到5.x,大家根据需求进行下载部署安装

官网下载地址:MongoDB Community Downloads | MongoDB

这里滑动找到到对应版本进行下载即可,windows选择x86_64 x64

windows10安装MongoDB详细教程!!!_第1张图片

注意:MongoDB官网从3.6开始就没有windows_x86_64_64的版本了,windows只有2008plus-ssl类型的,这个我尝试过,也能使用,启动的时候需要带上一个属性 --bind_ip_all,否则只能是本地127.0.0.1和localhost可以访问MongoDB库,3.4系列版本的添加该属性启动会出错

下载好的3.4.3版本然后解压,这里我新增了一个data和logs文件夹,用来存储mongodb的数据和日志文件,你也可以放在其他地方,这个根据个人需求来定义。

windows10安装MongoDB详细教程!!!_第2张图片

 接下来就是启动MongoDB数据库了,打开一个cmd窗口进入到bin目录下,然后执行指令进行数据库启动,data和logs路径根据自己定义的来设置

mongod.exe --dbpath D:\mongodb-win32-x86_64-3.4.3\data --logpath D:\mongodb-win32-x86_64-3.4.3\logs\mongodb.log

这样子就表示OK了, MongoDB数据库已经启动成功,但是这时候不能关闭窗口或者按Ctrl+C退出,退出后表示MongoDB也被强制关闭

启动如果有一个mongodb.log已存在的提示,是因为logs下面的日志文件夹已经有了一个相同名称的mongodb.log文件了,这个没关系不影响使用,有强迫症的可以删掉日志在执行启动指令即可 

windows10安装MongoDB详细教程!!!_第3张图片

启动成功后data目录下会自动生成MongoDB数据库的一些信息,logs目录下存的则是日志文件,文件内容是启动信息 

windows10安装MongoDB详细教程!!!_第4张图片

最后通过MongoDB可视化工具Robo连接一下测试一下即可

Robo工具官网下载地址:Robomongo

windows10安装MongoDB详细教程!!!_第5张图片

因为上面是使用的无认证模式启动的MongoDB,所以Authentication不勾选,勾选会提示认证失败

使用带认证属性启动才需要勾选和输入对应的账号密码

windows10安装MongoDB详细教程!!!_第6张图片

1、配置认证模式启动MongoDB

首先需要修改MongoDB的认证模式,默认是SCRAM-SHA-1认证模式,需要修改为MONGODB-CR认证模式

通过db.system.version.find({}); 查看authSchema的currentVersion数值(调出指令框:选中admin库,然后右键选择Open shell)

这里currentVersion的值为3则是MONGODB-CR模式,5则是SCRAM-SHA-1模式

如果没有通过语句进行新增

db.system.version.insert({ "_id" : "authSchema", "currentVersion" : NumberInt(3)})

windows10安装MongoDB详细教程!!!_第7张图片

如果有则执行修改语句

db.system.version.update({"_id":"authSchema"},{$set:{"currentVersion":NumberInt(3)}})

需要注意的是MongoDB各个版本不同,关于这个认证也有所不同,3.x系列版本可以进行修改,4.x系列版本后默认也是5,但是修改为3后会导致直接启动不了MongoDB库,需要删除data目录下的文件才能重新启动

认证模式修改完成后进行用户的创建,还是在刚刚修改认证模式的shell窗口,执行如下指令创建一个超级管理员用户,这里我创建了一个admin的超级用户,权限为root

use admin
db.createUser({user:'admin',pwd:'admin@123',roles:[{role:'root',db:'admin'}]});

windows10安装MongoDB详细教程!!!_第8张图片

用户创建完成后admin-->System会有一个system.users集合,没有的话则需要选择admin右键Refresh刷新,里面就是创建的用户数据

windows10安装MongoDB详细教程!!!_第9张图片

针对其他单库创建用户方式也是一样的,这里我创建一个test测试库,添加了一个user集合,加入了一条测试数据

windows10安装MongoDB详细教程!!!_第10张图片

 然后对测试库进行创建用户

shell窗口打开方式也是一样的,选中admin库,然后右键选择Open shell,然后先use test切换到test库,在对test进行用户创建,权限为读和写

use test
db.createUser({user:'test',pwd:'test',roles:[{role:'readWrite',db:'admin'}]}); 

windows10安装MongoDB详细教程!!!_第11张图片

用户创建权限说明:

Read:允许用户读取指定数据库

readWrite:允许用户读写指定数据库

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限(本次创建的就是超级账号)

用户创建完成后在原窗口按Ctrl+C关闭MongoDB,然后在原先的启动指令上加上--auth属性,表示带认证方式启动MongoDB(窗口关闭了就重开一个,进入到bin目录下就行)

windows10安装MongoDB详细教程!!!_第12张图片

重启后因为是带了auth属性的,原先无密码连接就会失败,需要加上账号密码进行连接

windows10安装MongoDB详细教程!!!_第13张图片

如果不是通过可视化工具连接,cmd命令窗口操作连上mongo之后需要先认证授权后才能操作,否则会提示未经授权错误

登陆MongoDB数据库,连接自己本地环境,可以不加host和port属性,直接执行mongo.exe也是可以的,host若是为其他服务ip,也能作为客户端访问其他数据库,port为MongoDB数据库端口,默认为27017,端口非默认需要指定端口启动

mongo.exe -host 127.0.0.1 --port 27017

切换admin后直接 show dbs; 查询数据库列表会提示未经管理员授权错误

windows10安装MongoDB详细教程!!!_第14张图片

在切换admin库后,需要先进行授权认证,db.auth("admin","admin@123"),返回数值1表示认证通过,接下来再次输入show dbs 就能把库列查询出来了

windows10安装MongoDB详细教程!!!_第15张图片

因为上面是初始化部署,所以一开始没有将MongoDB做成windows服务,目前授权认证都OK,这时候把MongoDB做成服务,方便后面的开启和关闭,以管理员身份打开一个cmd窗口,进入到MongoDB的bin目录下执行创建MongoDB服务指令

非权限方式新增MongoDB服务

mongod.exe --dbpath D:\mongodb-win32-x86_64-3.4.3\data --logpath D:\mongodb-win32-x86_64-3.4.3\logs\mongodb.log --install -serviceName "MongoDB"

以权限方式新增MongoDB服务

mongod.exe --dbpath D:\mongodb-win32-x86_64-3.4.3\data --logpath D:\mongodb-win32-x86_64-3.4.3\logs\mongodb.log --auth --install -serviceName "MongoDB"

删除MongoDB服务,同样需要使用管理员权限打开cmd命令创建,否则权限不足无法删除服务

sc delete "MongoDB"

添加成windows服务后,直接右键进行关闭开启,方便启动,但是建议不要设置自启动,因为MongoDB是内存数据库,比较吃资源,所以即用即开就行,且生产环境不推荐使用windows版本的MongoDB,建议部署Linux版本的MongoDB数据库

windows10安装MongoDB详细教程!!!_第16张图片

总结:MongoDB4.x.x,通过改mongod.cfg文件,在net部分把原先的bindIp: 127.0.0.1这行注释掉,然后加一行 bingIpAll: true,重新启动服务。
MongoDB3.6.x,没有mongod.cfg文件,先把 mongodb服务移除,然后重新注册服务,在之前同样参数的基础上增加 --bind_ip_all,然后启动服务,不加--bind_ip_all启动无法实现局域网连接。
3.2.x,3.4.x不用添加--bind_ip_all属性,正常ip地址可以访问就不用考虑--bind_ip_all属性。

你可能感兴趣的:(数据库,mongodb,windows,nosql,数据库,database)