一、什么是MongoDB
MongoDB 是一个基于分布式文件存储的数据库。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
二、MongoDB的安装
这里使用docker来安装MongoD
1.docker 拉取mysql镜像
docker pull mongo:latest
2.运行容器
docker run -dit --name mongo -p 27017:27017 mongo:latest --auth
参数说明
-i:表示运行容器
-t:表示容器启动后进入其命令行
-d:守护式方式创建容器在后台运行
-name:容器名称
-p 27017:27017:端口映射(宿主机端口:容器端口),mongoDB默认是27017端口
–auth:访问mongo需要鉴权(账号密码访问),这个参数要放在最后面,否则会报错
注意:如果是云服务器,记得开启对应的端口,添加对应的安全组相关策略。
3. 创建用户并设置密码
docker exec -it mongo /bin/mongosh
说明:
如果MongoDB6.0及以上使用:
docker exec -it mongo /bin/mongosh
如果是6.0以下的版本使用:
docker exec -it mongo /bin/mongo
三、创建MongoDB用户
1.mongo中各个角色对应的权限
权限 | 说明 |
---|---|
read | 允许用户读取指定数据库 |
readWrite | 允许用户读写指定数据库 |
dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
userAdmin | 允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户 |
clusterAdmin | 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 |
readAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读权限 |
readWriteAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读写权限 |
userAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 |
dbAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 |
root | 只在admin数据库中可用。超级账号,超级权限 |
2.创建一个用户,赋予用户root权限
注意:在createUser之前先use admin切换一下
然后执行创建用户命令
db.createUser(
{
user:"root",
pwd:"123456",
roles:[{role:"root",db:"admin"}]
}
);
//尝试使用上面创建的用户信息进行连接。
db.auth('root', '123456');
返回 { ok:1} 则说明创建成功。
四、连接 MongoDB
使用Navicat 连接mongoDB,建议用16版本的,低版本可能没有连接mongoDB的选项
连接成功后,打开如下