mongodb 是一种文档型 nosql 数据库,适合高并发读写、大规模数据处理。
使用 docker 安装 mongodb 简便,方便开发和测试,本文带你一起在 Linux(使用 centos) 上实战安装,windows和mac 用户可以通过 docker desktop 一键安装。
一、下载安装
使用命令 docker search mongo 查看可用的版本
本次使用官方镜像。
1、拉取 mongo 镜像(本次安装最新版,不写 :lastest 表示拉取最新版)
docker pull mongo:latest
查看这个最新版镜像里的 mongo 的版本是 5.0.5:
2、创建 mongo 持久化目录
mkdir -p /usr/local/docker-study/mongodb_5.0.5/data
确保数据持久化,防止容器删除后数据丢失,也方便后期备份、恢复、迁移。
3、运行容器
docker run -itd --name mongo_5.0 -v /usr/local/docker-study/mongodb_5.0.5/data:/data/db -p 27017:27017 mongo:l atest --auth
命令参数含义:
- -itd: 3个参数的组合:-i 或 --interactive: 使容器的标准输入保持打开状态。-t 或 --tty: 分配一个伪终端(pseudo-TTY)。-d 或 --detach: 在后台运行容器。
- --name mongo_5.0: 指定容器的名称为 "mongo_5.0"。
- -v /usr/local/docker-study/mongodb_5.0.5/data:/data/db: 将宿主机上的 /usr/local/docker-study/mongodb_5.0.5/data 目录挂载到容器内的 /data/db 目录,实现数据的持久化。
- -p 27017:27017: 将容器的端口 27017 映射到宿主机的端口 27017,允许从宿主机访问 MongoDB 数据库。
- mongo:l atest: 指定要运行的 Docker 镜像名称为 "mongo",标签为 "latest",即最新版本的 MongoDB。
- --auth: 启用 MongoDB 的身份验证功能。
二、创建用户
先登录 mongo 容器,进入 admin 数据库:
docker exec -it mongo_5.0 mongo admin
mongo admin: 表示要在容器内执行的命令。此处是在 MongoDB 容器内启动 mongo shell,并连接到 "admin" 数据库。mongo 是 MongoDB 的命令行客户端工具,admin 是 MongoDB 默认的管理数据库。
mongo 默认没有用户,创建一个用户:
db.createUser({
user: 'root',
pwd: '1234567a',
roles: [{
role: 'userAdminAnyDatabase',
db: 'admin'
},
'readWriteAnyDatabase']
});
下面是操作过程:
表示在 MongoDB 数据库中创建一个 root 用户,并为该用户授予在 "admin" 数据库中管理用户和角色的权限,以及在任意数据库中的读写权限。
命令参数说明:
- db.createUser(): 这是 MongoDB shell 中的一个函数,用于创建用户。
- { user: 'root', pwd: '1234567a', roles: [ { role: 'userAdminAnyDatabase', db: 'admin' }, 'readWriteAnyDatabase']}: 这是一个 JavaScript 对象,其中包含了要创建的用户的详细信息。
- user: 'root': 指定要创建的用户的用户名。
- pwd: '1234567a': 指定要创建的用户的密码。
- roles: 指定要授予用户的角色列表。这里有两个角色:{ role: 'userAdminAnyDatabase', db: 'admin' }: 授予用户在 "admin" 数据库中具有 "userAdminAnyDatabase" 角色的权限。这个角色允许用户管理任意数据库的用户和角色。'readWriteAnyDatabase': 授予用户在任意数据库中具有读写权限的角色。这意味着用户可以读取和写入任意数据库中的数据。
三、测试连接
连接 mongo 数据库,使用 db.auth('root', '1234567a') 验证用户登录。
测试插入一条记录,使用 db.user.insert({"name":"zhangsan","level":5})。
查询,使用 db.user.find() 可以查到,说明插入和查询功能都成功:
四、第三方工具连接
连接 mongodb 有很多工具,本次使用 navicat 连接,点击连接,选择 MongoDB:
输入连接信息:
五、总结
使用 docker 安装 mongodb,可以快速搭建一个 mongodb 数据库,方便开发、测试。赶快来试试吧,嘿嘿。