下载准备
MongoDB官方的下载地址
MongoDB:Windows64位 4.2.3,Linux 4.2.3
安装与配置(Windows版)
1、运行mongodb-win32-x86_64-2012plus-4.2.3-signed.msi进行安装(本文默认解压到了 C:\MongoDB\Server\4.2)。
安装比较容易。难点在配置文件,启动Mongodb的服务以及将MongoDB设置成Windows服务,加载配置文件在windows的“服务”中找到。
关于网上教程中普遍推荐新建一个data文件夹等等一些操作,我的看法是可有可无,因为到了我这个版本,mongodb会自己创建这些东西。当然,如果为了方便寻找数据库和日志,自己建一个也可以。
这里我就简单描述一下:
(这里我默认在 C:\MongoDB\ 里面创建文件夹了)
创建C:\MongoDB\data\log目录,用来存放日志文件;
在C:\MongoDB\data\log目录里新建mongodb.log,用来存放日志信息;
创建C:\MongoDB\data\db目录,用来存放数据库数据。
2、在C:\MongoDB\Server\4.2\data目录下创建db
文件夹(因为默认安装中没有这个文件夹,但后面要用)
在C:\MongoDB\Server\4.2目录下创建mongo.config,在文件内部复制如下文本:
|
|
3、安装服务
用管理员权限
打开cmd命令行,输入如下命令安装mongodb服务:
sc create MongoDB binPath= "C:\MongoDB\Server\4.2\bin\mongod.exe --service --config=C:\MongoDB\Server\4.2\mongo.config"
再 cd
进入C:\MongoDB\Server\4.2\bin文件夹,使用如下命令:
mongod --config C:\MongoDB\Server\4.2\mongo.config --install --serviceName "MongoDB"
继续在C:\MongoDB\Server\4.2\bin文件夹的目录下,使用如下命令:
mongod --logpath "C:\MongoDB\Server\4.2\log\mongodb.log" --logappend --dbpath "C:\MongoDB\Server\4.2\data\db" --serviceName "MongoDB" --install
然后在cmd里输入services.msc打开服务管理器,找到MongoDB服务,设置成自动启动,并启动。
如果启动不成功,先删除服务,使用如下命令:
sc delete MongoDB
然后再从第2步开始,重新排查各种配置项及操作
4、测试是否安装成功
进入C:\MongoDB\Server\4.2\bin文件夹下,点击mongod.exe,如果闪一下退出,说明安装正常。
然后在浏览器里访问这个地址http://localhost:27017/
如果显示了It looks like you are trying to access MongoDB over HTTP on the native driver port.
说明服务和端口正常。
配置环境变量(可省略)
- 如果不配置环境变量,在使用mongo命令时要先
cd
进入C:\MongoDB\Server\4.2\bin 目录才能使用命令 - 通过配置环境变量的方式,让mongo命令在所有文件夹内都可以访问
在系统变量中找到path,双击打开后在变量值中的末尾增加输入C:\MongoDB\Server\4.2\bin;
即可
(Win10则双击打开后点击“编辑文本
”同样在变量值中的末尾增加输入)!
远程连接MongoDB数据库(Windows版)
打开bin目录中的mongod.cfg文件进行编辑,其中bindIp:127.0.0.1改为0.0.0.0 不然别的地方访问不了,
取消security的#
注释符,并添加authorization:enabled
然后以管理员身份在bin目录下执行如下命令,使配置生效
mongod –config “C:\MongoDB\Server\4.2\bin\mongod.cfg” –install
然后重启MongoDB服务
关闭mongodb net stop mongodb
开启mongodb net start mongodb
这里设置了0.0.0.0允许远程访问,所以最好加一层验证,添加一个mongo用户进行管理。
在bin目录打开cmd输入mongo
执行命令
use admin
db.createUser({
“user”:”admin”,”pwd”:”password”,
“roles”:[
{role:”userAdminAnyDatabase”, db: “admin”},
{role:”readWriteAnyDatabase”, db: “admin”}
]});
这里就添加了一个admin的用户,密码为password
另外远程访问的话,记得开启安全组和防火墙端口,可能会因为这个导致全盘皆输
关于 MongoDB用户 的命令
show dbs 查看数据库
use dbname 进入数据库
show users 查看当前数据库用户权限
创建用户
db.createUser({user:"usertest",pwd:"passtest",roles:[ {role:"clusterAdmin", db:"admin" }, {role:"readAnyDatabase",db:"admin" }, {role:"readWrite",db:"testDB" } ]})
权限详解
内建角色:
数据库用户角色: 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集合写入,可以找指定数据库里创建、删除和管理用户
dbOwner: 允许在当前DB中执行任意操作
readAnyDatabase: 赋予用户所有数据库的读权限,只在admin数据库中可用
readWriteAnyDatabase: 赋予用户所有数据库的读写权限,只在admin数据库中可用
userAdminAnyDatabase: 赋予用户所有数据库管理User的权限,只在admin数据库中可用
dbAdminAnyDatabase: 赋予管理所有数据库的权限,只在admin数据库中可用
root: 超级账号,超级权限,只在admin数据库中可用。
------------------------------------------------------------------------------------------
集群管理角色:
clusterAdmin: 赋予管理集群的最高权限,只在admin数据库中可用
clusterManager: 赋予管理和监控集群的权限
clusterMonitor: 赋予监控集群的权限,对监控工具具有readonly的权限
hostManager: 赋予管理Server
修改密码
方法1:db.changeUserPassword("usertest","changepass");
方法2:db.updateUser("usertest",{pwd:"changepass1"});
修改权限
db.updateUser("usertest",{roles:[ {role:"read",db:"testDB"} ]})
注:updateuser它是完全替换之前的值,如果要新增或添加roles而不是代替它
则使用方法: db.grantRolesToUser() 和 db.revokeRolesFromUser()
------------------------------------------------------------------------------------------
修改权限
db.grantRolesToUser("usertest", [{role:"readWrite", db:"testDB"},{role:"read", db:"testDB"}])
删除权限
db.revokeRolesFromUser("usertest",[{role:"read", db:"testDB"}])
MongoDB命令
|
|
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 qasdwasd@qq.com