一、实验目的
1、完成mongoDB的安装;
2、完成mongosh的安装;
3、定义用户,启动身份验证配置;验证用户登录;
4、完成实例01的练习;
二、实验内容:
实验环境
操作系统:Rocky-9.5 /CentOS Stream 9
MongoDB 版本:8.0.9
MongoDB Shell 版本:2.5.1
IP:10.1.1.58
Port:12107
配置步骤
(1)mongodb 的部署过程
#安装依赖
yum -y install libcurl openssl
# 直接命令安装
# 安装mongodb
yum -y install https://repo.mongodb.org/yum/redhat/9/mongodb-org/8.0/x86_64/RPMS/mongodb-org-server-8.0.9-1.el9.x86_64.rpm
#若上传了安装包,安装mongodb
yum -y install /root/mongodb-org-server-8.0.9-1.el9.x86_64.rpm
#启动服务
systemctl start mongod.service && systemctl enable mongod
systemctl status mongod.service
#下载工具
yum -y install net-tools
#查看进程
netstat -naptlu |grep mongod
#查看当前mongodb 的版本
mongod --version
(2)部署mongodb的后台管理工具mongosh
#若未上传安装包
#安装mongosh
yum -y install https://downloads.mongodb.com/compass/mongodb-mongosh-2.5.1.x86_64.rpm
#若上传了安装包,安装mongodb
获取链接如下:Docs
yum -y install /root/mongodb-mongosh-2.5.1.x86_64.rpm
#安装内容
rpm -ql mongodb-mongosh
#查看当前版本mongosh 版本
mongosh --version
(3)定义用户,启动身份验证配置;验证用户登录
实例操作 以下是一个完整的示例操作流程: #启动 MongoDB Shell 并连接到服务器: mongosh --host localhost --port 27017 #切换到 testdb 数据库: use testdb #创建 testuser 用户: db.createUser({ user: "testuser", pwd: "password123", roles: [{ role: "readWrite", db: "testdb" }] }) #启用身份验证并重启 MongoDB 实例 编辑 mongod.conf 文件,添加以下内容: security: authorization: "enabled" #重启 MongoDB 服务: sudo systemctl restart mongod #使用 testuser 用户进行身份验证连接: mongosh --host localhost --port 27017 -u "testuser" -p "password123" -- authenticationDatabase "testdb" #删除 testuser 用户: db.dropUser("testuser") |
- 实例-01
以下是使用 MongoDB Shell 连接到本地 MongoDB 服务器,并执行一些基本操作的示例:
# 启动 MongoDB Shell mongosh # 连接到本地 MongoDB 服务器 test> show dbs admin 40.00 KiB config 72.00 KiB local 40.00 KiB test> use runoob switched to db runoob # 插入文档 runoob> db.mycollection.insertOne({ name: "Alice", age: 30 }) { acknowledged: true, insertedId: ObjectId('667cd8789a69705686ed70f2') } # 查询文档 runoob> db.mycollection.find() [ { _id: ObjectId('667cd8789a69705686ed70f2'), name: 'Alice', age: 30 } ] # 更新文档 runoob> db.mycollection.updateOne({ name: "Alice" }, { $set: { age: 31 } }) { acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 } #查询集合 runoob> show collections mycollection runoob> # 删除文档 runoob> db.mycollection.deleteOne({ name: "Alice" }) { acknowledged: true, deletedCount: 1 } # 退出 MongoDB Shell runoob> quit() |
注意启用认证后,无认证模式使用show dbs会查看不了,得有管理员权限才能操作。所以要进行测试可以先注释掉下面的内容
编辑 mongod.conf 文件,添加以下内容:
security:
authorization: "enabled"
如果想在有启用认证的模式下进行示例操作需要创建管理员用户,登录进行操作
# 1. 以无认证模式连接
mongosh
# 2. 创建用户(在mongosh中执行)
use admin
db.createUser({
user: "admin",
pwd: "admin123",
roles: ["root"]
})
# 3. 退出并启用认证
quit()
sudo vi /etc/mongod.conf # 添加 security.authorization: enabled
sudo systemctl restart mongod
# 4. 重新登录验证
mongosh -u "admin" -p "admin123" --authenticationDatabase "admin"
show dbs # 应成功列出数据库
三、实验总结
1.MongoDB 安装:成功安装了 MongoDB 8.0.9 版本,服务能够正常启动。
2.MongoDB Shell 安装:成功安装了 MongoDB Shell(mongosh)2.5.1 版本,可用于连接和管理 MongoDB。
3.用户定义与身份验证:成功创建了管理员用户 admin 和测试用户 testuser,并启用了身份验证。用户登录验证功能正常。
4.实例操作:完成了实例 01 的练习,包括数据库的基本操作(如插入、查询、更新、删除文档等)。