MongoDB下载以及可视化插件
一、MongoDB下载安装教程(Windows)
下载地址https://www.mongodb.com/try/download/community
1、安装步骤
选择Complete,表示安装到默认路径(不推荐)
选择Custom,表示自定义安装路径(推荐)
这个对号取消掉,这是个可视化工具,超级不好用,安装起来很费尽。(如果需要,这个可视化界面可以另行安装)
接下来就next–>install–>finish就安装成功了!!!
2、配置
我们需要在data目录下新建一个db文件夹。
在MongoDB的安装路径下创建mongodb.config。
dbpath=D:\Program Files\MongoDB\Server6.0\data\db#数据库路径
#这里是你的安装路径!!!!!
logpath=D:\Program Files\MongoDB\Server6.0\log\mongod.log#日志输出文件路径
#这里是你的安装路径!!!!!
logappend=true#错误日志采用追加模式
journal=true#启用日志文件,默认启用
quiet=true #过滤掉无用的日志信息,若需要调试使用请设置为false
port=27017 #端口号 默认为27017
3、启动
在D:\Program Files\MongoDB\Server6.0\bin目录下打开cmd
mongod --dbpath "你安装的盘:mongodbdatadb" --logpath "你安装的盘:mongodblogslog.txt" --install -serviceName "MongoDB"
打开浏览器访问 http://localhost:27017
出现如下页面,则表示启动成功。
在服务中已出现MongoDB服务已经启动,正在运行。
4、配置环境变量
二、下载shell命令工具
6版本需要自己下载shell文件 然后命令是mongosh 不是mongo
解压至D:\Program Files\MongoDB\Server6.0安装目录下
配置环境变量
四、设置密码
1、理解Admin数据库
新安装的MongoDB是没有账号设置,不用安全验证,任何人只要连接上服务就可以进行CRUD操作,这是非常不安全的。
所以我们需要对MongoDB进行设置账号,来控制对数据库的访问。
mongodb没有默认管理员账号,先添加管理员账号,再开启权限认证
切换到admin数据库,添加的账号才是管理员账号
管理员可以管理所有数据库,但要先在admin数据库认证后才可以管理其他数据库
MongoDB默认有一个admin数据库,admin.system.users中将会保存比在其它数据库中设置的用户权限更大的用户信息
当admin.system.users中一个用户都没有时,即使mongod启动时添加了- -auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作,直到在admin.system.users中添加了一个用户
2、角色与权限
Mongodb的授权采用了角色授权的方法,每个角色包括一组权限
Mongodb已经定义好了的角色叫内建角色,我们也可以自定义角色
MongoDB角色有:
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root;
- 内部角色:__system;
3、MongoDB权限:
- read: 允许用户读取指定数据库
- readWrite: 允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
- userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,具有所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在admin数据库中可用,具有所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,具有所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,具有所有数据库的userAdmin权限
- dbAdminAnyDatabase:只在admin数据库中可用,具有所有数据库的dbAdmin权限。
- root:只在admin数据库中可用。超级账号,超级权限
4、创建用户管理员
admin表创建一个admin user并设置密码并给userAdminAnyDatabase的权限
userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。
use admin;
db.createUser({user: 'admin', pwd: '123456', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]});
创建普通用户
>use foobar
>db.createUser(
{ user:"foobarUser",
pwd:"foo",
roles:[{role:"readWrite",db:”foobar”}],
}
)
创建数据库管理员:
use admin
db.createUser(
{ user:"DbUser",
pwd:"DbPwd“,roles:["readWriteAnyDatabase", "dbAdminAnyDatabase"]
}
);
5、查询删除用户
查询某个数据库下的用户:
db.system.users.find()
删除指定用户:
db.dropUser(“用户名”);
2、第二步
注意:authorization前面是两个空格,不能是缩进tab,否则mongodb会起不来。
security:
authorization: enabled
3、第三步
rote:dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等。
rote:readWrite 代表用户用于该数据的读写,只拥有读写权限。
三、可视化界面Robo 3T
Robo 3T官网下载地址:https://robomongo.org/download