此文章为结合多个版本摘抄总结而来,仅供学习,参考。侵权请见谅
一、MongoDB的安装(重点)
1.基本操作
对mongodb数据库的操作是通过执行命令来完成的,我的电脑里面这些命令安装在:
C:\Program Files\MongoDB\Server\3.2\bin
要执行这些命令,需要以管理员身份运行cmd( 不建议用git来操作,因为git不是utf-8编码,会有中文乱码问题)。
打开开始菜单,找到命令提示符,在上面点击右键,选择以管理员身份运行。
要想执行mongodb的命令,需要cd到他的安装目录下面的bin文件夹下。
为了在dos窗口的任何目录下都能执行mongo的命令,需要先设置环境变量,因为计算机在执行命令的时候会在环境变量中找对应的命令。
不同的操作系统设置环境变量的步骤大同小异。
Win10操作系统下设置环境变量如下图。
2.设置环境变量
Win7下设置环境变量:
第一步:我的电脑上点击右键,选择属性
第二步:找到并打开“高级系统配置”。
在接下来的页面中点击“高级系统配置”,打开“系统属性”窗口。
第三步:找到“环境变量”按钮并点击。
第四部:在环境变量窗口中一般有两个变量,一个是你当前所使用的用户独有的环境变量,另一个是所有用户都可以访问的系统变量。其实如果在你的电脑上你只使用一个用户的话,那么不管你修改的用户的环境变量还是系统变量,效果都是一样的。为了以防未来会新建其他用户,那么我建议你修改系统变量而不是某个用户独有的环境变量。
在变量值最后加上分号 ;C:\Program Files\MongoDB\Server\3.2\bin
然后保存。
3.创建文件夹( 重点 )
3.1.如果同学们这边已经有data/log目录了就可以不做了
我们之前安装的其实是数据服务器,通过数据库服务器可以建立很多个数据库,我们打算把新建的数据库放哪里呢?需要指定一个位置。
1、在d盘建立一个文件夹mongodb,并且建立子目录db和log.
2、在log目录下建立一个文件MongoDB.log ,后缀为.log.
d:\mongodb\db、d:\mongodb\log, 分别用来存放数据库文件和数据库日志文件.
3、把mongodb文件夹的只读属性去掉。
4.启动MongoDB
以管理员身份运行cmd.exe,进入dos命令界面,执行下列命令
mongod --storageEngine mmapv1 --dbpath “d:\mongodb\db” --logpath “d:\mongodb\log\MongoDB.log”
执行后,就挂起了,需要另外开命令窗口测试是否启动成功。
5.测试连接
原来的cmd窗口不关闭,以管理员身份再开一个cmd窗口,输入mongo或者mongo.exe,出现如下信息说明测试通过,此时我们已经进入了test这个数据库。
从上图可以看出,我们进入了mongodb的shell
输入exit或者ctrl+C可退出。
二、将MongoDB安装为windows服务(重点中的重点)
当mongod.exe被关闭时,mongo.exe 就无法连接到数据库了,因此每次想使用mongodb数据库都要开启mongod.exe程序,所以比较麻烦,此时我们可以将MongoDB安装为windows服务
1.以管理员身份运行cmd,进入bin文件夹,执行下列命令
mongod --storageEngine mmapv1 --dbpath “E:\cyx\MongoDB4.2\data” --logpath “E:\cyx\MongoDB4.2\log\mongo.log” --install --serviceName “MongoDB”
这里MongoDB.log就是开始建立的日志文件,–serviceName “MongoDB” 服务名为MongoDB
三、接着启动mongodb服务
NET START MongoDB
四、若启动MongoDB服务时,出现“服务没有响应控制功能”:
1.sc delete MongoDB
通过以上命令,卸载MongoDB服务。
2.
mongod --dbpath “E:\cyx\MongoDB4.2\data” --logpath “E:\cyx\MongoDB4.2\log\mongo.log” --logappend --serviceName MongoDB --auth --install
cmd命令行以管理员方式启动并进入到 D:\Program Files\MongoDB\bin下,执行以上代码
五、创建账号及使用auth登陆
-
这是以没有auth的方式注册并启动服务,但是这样不安全,一般启动服务的时候都要以auth的方式启动,我们现在先新建一个管理员用户,为稍后以auth方式启动服务做准备。输入命令:mongo
-
接下来一次输入命令 use admin
-
新建用户 db.createUser({user:”账号”,pwd:”密码”,roles:[{“role”:”userAdmin”,”db”:”admin”},{“role”:”root”,”db”:”admin”},{“role”:”userAdminAnyDatabase”,”db”:”admin”}]})
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限(本次创建的就是超级账号)
-
对账号授权:db.auth(“账号”,”密码”)
-
原本的服务是无auth登陆 现在需要卸载。用管理员打开cmd输入:sc delete MongoDB
-
打开服务管理页面,找到MongoDB,右键停止,然后刷新就会发现MongoDB服务没有了
-
以auth的方式启动服务,管理员身份cmd输入:
sc create MongoDB binpath=”X:\XXX\bin\mongod.exe” --dbpath X:\XXX\data --logpath X:\XXX\log\log.log --logapend --auth --service” (X:\XXX为mongodb的安装目录)。执行完之后输入net start mongodb
- 输入指令mongo然后再继续输入 show dbs
- 发现无权限操作,因为我们没有用有权限的账号登陆。 输入exit退出,然后接着输入 mongo -u 账号 -p 密码 localhost:27017/admin (连远程就把localhost换成远程的ip)
这时候输入 show dbs 就能看到数据库了