MongoDB数据库安装部署

本文详细介绍MongoDB的下载、安装步骤及配置方法,并深入解析如何设置管理员与业务数据库用户,包括角色分配与权限控制,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 数据库分类

  1. 关系型数据库(RDBMS)
    MySQL , Oracle , DB2 , SQL Sever `````
  2. 非关系型数据库(No SQL)
    MongoDB , Redis ``````

在这里插入图片描述

MongoDB中层级关系

在这里插入图片描述

在MongoDB数据库中左侧的表就是collection , 右侧的每条数据就是document
,document内以Bjson的形式保存数据内容。
在这里插入图片描述
document内内容格式:
在这里插入图片描述

2. MongoDB下载

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
tar zxvf mongodb-linux-x86_64-3.0.6.tgz

创建数据库存储路径以及日志路径

cd mongodb-linux-x86_64-3.0.6
mkdir -p data/db
mkdir -p data/logs

配置数据库启动配置文件 mongodb.conf

dbpath=your/path/to/data/db
logpath=your/path/to/data/logs/mongodb.log
logappend=true    #以追加方式记录日志
fork=true         #后台执行
port=27017        # 端口 ,可以自行设定,一般是四位或以上,最大不要超过65535
bind_ip=your ip   # IP
auth=true         # 是否需要用户名验证

启动数据库服务器,服务器用来保存数据

cd mongodb-linux-x86_64-3.0.6/bin
./mongod --config ../mongodb.conf

启动数据库客户端,客户端用来操作服务器,对数据库进行增删改查等操作。

./mongo  IP:Port

出现>表示连接成功
在这里插入图片描述

3.设置用户名密码:

https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles

3.1 创建admin管理员用户

指定用户的角色和数据库:
(此时添加的用户都只用于admin数据库,而非存储业务数据的数据库)
#首先进入admin数据库 ,如果没有该库,会自动创建
use admin

db.createUser 创建管理员用户

db.createUser(  
  { user: "zyf",  
    customData:{description:"superuser"},
    pwd: "zyf",  
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]  
  }  
)  

在这里插入图片描述

说明:
user字段,为新用户的名字;
pwd字段,用户的密码;
cusomData字段,为任意内容,例如可以为用户全名介绍;
roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色。在roles字段,可以指定内置角色和用户定义的角色。
超级用户的role有两种,userAdmin或者userAdminAnyDatabase(比前一种多加了对所有数据库的访问,仅仅是访问而已)。
db是指定数据库的名字,admin是管理数据库。
不能用admin数据库中的用户登录其他数据库。注:只能查看当前数据库中的用户,哪怕当前数据库admin数据库,也只能查看admin数据库中创建的用户

3.2 创建一个业务数据库管理员用户

(普通用户账号,只负责一些数据库的增删改查等)

> use work_db
> db.createUser({
    user:"zhangyf",
    pwd:"zhangyf",
    customData:{
        name:'zyf',
        email:'zyf@qq.com',
        age:18,
    },
    roles:[
        {role:"readWrite",db:"work_db"}
        'read'    # 对其他数据库有只读权限,对work_db是读写权限
    ]
})

在这里插入图片描述

说明:

1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、4. clusterMonitor、hostManage;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
7. 内部角色:__system

角色说明:

1. Read:允许用户读取指定数据库
2. readWrite:允许用户读写指定数据库
3. dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
4. userAdmin:允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户
5. clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
6. readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
7. readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
8. userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
9. dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
10. root:只在admin数据库中可用。超级账号,超级权限

修改密码和用户信息

use work_db
db.runCommand(
    {
        updateUser:"username",
        pwd:"xxx",
        customData:{title:"xxx"}
    }
)

创建好用户以后关闭数据库,重新启动

在这里插入图片描述
进入相应数据库,db.auth("账号",“密码”)
登录账号信息,1 代表登陆成功

显示数据库
在这里插入图片描述

插入数据

db.work_db.insert("name":"孙悟空","gender":"男")

在这里插入图片描述
在客户端显示结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风风是超人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值