如何在 Rocky Linux 上安装 MongoDB如何在 Rocky Linux 上安装 MongoDB如何在 Rocky Linux 上安装 MongoDB如何在 Rocky Linux 上安装 MongoDB
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Rocky Linux 上安装 MongoDB

MongoDB 是一个分布式 NoSQL 数据库系统,内置对高可用性、水平扩展和地理分布的支持。它是最流行的面向文档的数据库程序,使用类似 JSON 的文档来存储数据。与表式关系数据库不同,MongoDB 提供不同的数据存储和检索机制。

MongoDB 是一种高性能 No-SQL 数据库系统,适用于所有类型的计算技术,包括本地和云(公共和私有)。它广泛应用于不同类型的行业,从福布斯等知名新闻网站到谷歌、思科、Adobe 等软件和技术公司。

本教程将教您如何在 Rocky Linux 上安装 MongoDB。您将从官方 MongoDB 存储库安装最新的稳定版本。此外,您还将了解如何通过启用 MongoDB 身份验证来保护部署,并了解 MongoDB 上的基本 CRUD(创建、读取、更新和删除)。

先决条件

  • Rocky Linux 系统。
  • 具有 root 或 sudo 权限的用户。该用户将用于安装新软件包并在系统范围内进行更改。

添加 MongoDB 存储库

在第一阶段,您将为基于 RHEL 的操作系统(在本例中为 Rocky Linux 系统)添加 MongoDB 存储库。

1. 执行以下 nano 命令创建新的存储库文件 '/etc/repos.d/mongodb-org-5.0.repo'。

sudo nano /etc/yum.repos.d/mongodb-org-5.0.repo

请将以下配置复制并粘贴到其中。

[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

按“Ctrl+x”按钮,输入“y”,然后按“Enter”保存并退出。

2. 现在使用下面的 DNF 命令验证 Rocky Linux 系统上的所有可用存储库。

sudo dnf repolist

下面是您将得到的类似输出。

如屏幕截图所示,MongoDB 存储库在 Rocky Linux 系统上可用,并且您已准备好安装 MongoDB 软件包。

在 Rocky Linux 上安装 MongoDB

1. 要在 Rocky Linux 上安装 MongoDB,请执行以下 DNF 命令。

sudo dnf install mongodb-org

输入“y”并按“Enter”确认安装。

另外,系统会要求您添加 MongoDB 的 GPG 密钥,输入“y”,然后按“Enter”添加并确认。

2. 如果 MongoDB 安装完成,请使用以下命令启用 MongoDB 服务。

sudo systemctl enable mongod
sudo systemctl is-enabled mongod

3.之后执行以下命令启动MongoDB服务并检查服务状态。

sudo systemctl start mongod
sudo systemctl status mongod

您将得到与下面的屏幕截图类似的输出。

MongoDB 服务在默认配置下处于“活动(正在运行)”状态。此外,MongoDB 服务已“启用”,这意味着它将在系统启动时自动运行。

使用 MongoDB Shell 连接到 MongoDB

MongoDB 提供了一个命令行工具来管理 MongoDB 部署。它称为“mongosh”或 MongoDB Shell。它支持 MongoDB 4.0 或更高版本,可在多个操作系统上使用,并自动安装在您的部署中。

1. 要连接到 MongoDB 服务器,请运行“mongosh”命令,如下所示。

mongosh

默认命令将自动连接到本地 MongoDB 部署。

2. 如果要使用自定义 IP 地址或主机名以及自定义 MongoDB 端口连接到 MongoDB 服务器,请执行以下“mongosh”命令。

mongosh "mongodb://localhost:27017"

3. 连接到 MongoDB shell 后,执行以下查询以禁用 MongoDB 遥测。

disableTelemetry()

现在输入“exit”以从 mongosh shell 注销。

创建管理员并启用身份验证

在此阶段,您将为 MongoDB 创建一个新的管理员用户,并通过配置“/etc/mongod.conf”启用身份验证来保护 MongoDB 部署。

1. 使用下面的“mongosh”命令连接到您的 MongoDB 服务器。

mongosh

2. 使用查询“use”切换到数据库“admin”,如下所示。

use admin

3. 之后,执行下面的 MongoDB 查询来创建一个新用户“superadminuser”,密码为“superadminpass”,角色为多个角色。

db.createUser(
   {
     user: "superadminuser",
     pwd: "superadminpass",
     roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]
   }
 )

之后,使用以下查询向用户“superadminuser”授予角色“root”。

db.grantRolesToUser('superadminuser',[{ role: "root", db: "admin" }])

您将看到类似“{ ok: 1 }” 的输出,这意味着查询成功并且创建了新用户“superadminuser”。

4. 使用以下查询验证 MongoDB“admin”用户。

db.getUsers()

您将获得具有数据库“admin”和多个角色的新用户“superadminuser”。此外,还使用默认身份验证机制“SCRAM-SHA-1”和“SCRAM-SHA-256”。

现在输入“exit”并按“Enter”从 mongosh shell 注销。

5. 接下来,要启用 MongoDB 身份验证,请使用下面的 nano 命令编辑配置“/etc/mongod.conf”。

sudo nano /etc/mongod.conf

取消注释选项“安全”并添加如下配置。

security:
  authorization: enabled

按“Ctrl+x”按钮保存配置,键入“y”,然后按“Enter”退出。

6. 要应用您所做的更改,请执行以下命令以重新启动 MongoDB 服务。

sudo systemctl restart mongod

新的 MongoDB 配置已应用。使用以下命令检查 MongoDB 服务状态。

sudo systemctl status mongod

现在,您将看到 MongoDB 服务处于活动(正在运行)状态,并且启用了身份验证。

验证 MongoDB 身份验证

在此阶段,您将验证 MongoDB 身份验证以向服务器进行身份验证。

1.执行下面的mongosh命令登录MongoDB服务器。

mongosh

2. 现在使用以下查询切换到数据库管理。

use admin

3. 然后,执行以下查询以向 MongoDB 服务器进行身份验证。

db.auth("superadminuser", "superadminpass")

4. 或者您可以使用类似 JSON 的格式,如下所示。

db.auth( {
   user: "superadminuser",
   pwd: "superadminpass",
   mechanism: "SCRAM-SHA-256"
} )

您将看到输出“{ ok: 1 }”,这意味着身份验证成功。

4. 要验证您是否已通过身份验证,请运行以下查询。

db.getUsers()
show users;

如果您已通过 MongoDB 服务器的身份验证,您将看到用于身份验证的管理员用户的详细信息。

5. 或者,您可以使用 mongosh 命令直接向 MongoDB 服务器进行身份验证,如下所示。

mongosh --username "superadminuser" --password

输入用户“超级管理员用户”的密码,然后按“Enter”。

如果您的身份验证成功,您将获得 mongosh shell 界面。否则,您将收到错误“身份验证失败”,如下面的屏幕截图所示。

在 MongoDB 上创建用户和数据库

在本阶段,您将学习如何在 MongoDB 上创建新数据库和用户。

1. 在创建新的数据库和用户之前,使用下面的 mongosh 命令登录 MongoDB。

mongosh

现在切换到数据库“admin”,并使用以下查询将您自己验证为用户“superadminuser”。

use admin
db.auth( {
user: "superadminuser",
pwd: "superadminpass",
mechanism: "SCRAM-SHA-256"
} )

确保您获得的输出为“{ ok: 1 }”,这意味着身份验证成功。

2. 接下来,要在 MongoDB 上创建新数据库,您可以使用查询“use dbname”,如下所示。

use demodb

在本示例中,您创建了一个新数据库“demodb”。

3. 现在执行以下查询来创建新用户“DemoUser”,并将角色“readWrite”授予数据库“demodb”,角色“读取”数据库“学校”。

db.createUser(
  {
    user: "DemoUser",
    pwd:  "passworddbuser",
    roles: [ { role: "readWrite", db: "demodb" },
             { role: "read", db: "school" } ]
  }
)

之后,使用以下查询检查用户。

show users;

您将获得刚刚创建的“DemoUser”的详细信息。

基本增删改查操作

创建新用户和数据库后,您将学习 MongoDB 上的基本 CRUD(创建、读取、更新和删除) 操作。

1. 首先,登录 MongoDB shell,并使用以下查询以“DemoUser”身份登录数据库“demodb”。

登录 MongoDB shell。

mongosh

切换到数据库“demodb”并以“DemoUser”身份进行身份验证。

use demodb
db.auth( {
user: "DemoUser",
pwd: "passworddbuser",
mechanism: "SCRAM-SHA-256"
} )

图14

将文档插入 MongoDB

1. 接下来,使用查询“db.insertOne()”将新数据插入数据库“demodb”,如下所示。

db.demodb.insertOne(
{
   name: "Paul",
   age: 32,
   address: "California",
   salary: 20000.00
})

现在,您将看到类似的输出,如下所示。

2. 您应该知道的另一个查询是“db.insertMany()”,它允许您使用数组格式一次插入多个文档。

使用以下查询将多个数据插入 MongoDB。

db.demodb.insertMany(
[
   { name: "Jesse", age: 32, address: "Mexico", salary: 30000.00 },
   { name: "Linda", age: 25, address: "Canada", salary: 40000.00 },
   { name: "Nana", age: 27, address: "California", salary: 35000.00 }
]
)

您将得到如下类似的输出。

如屏幕截图所示,多条数据记录已添加到数据库“demodb”中。

MongoDB 上的查询文档

要显示 MongoDB 上的所有可用数据,请使用“db.find()”查询,如下所示。

1. 使用以下查询显示数据库“demodb”内的所有数据。

db.demodb.find()

下面是您将得到的类似输出。

2. 要显示 MongoDB 上的特定数据,请使用“db.find()”查询,然后使用如下过滤器。

db.demodb.find(
{
   address: "California"
}
)

您将获得包含“地址:“加利福尼亚””集合的所有数据,如下所示。

更新 MongoDB 上的文档

1. 要更新 MongoDB 上的文档,您可以使用查询“db.updateOne()”,后跟过滤器和要更改的列,如下所示。

db.demodb.updateOne(
   { "name": "Jesse" },
   { $set: { "address": "Canada" } }
)

您将看到类似的输出,如下所示。

从截图中可以看出,“matchedCount: 1”表示查询匹配了N条数据,“modifiedCount: 1”表示数据已被修改。改变了。

2. 使用以下查询验证新数据。

db.demodb.find(
{
   name: "Jesse"
}
)

您将看到更改后的文档为“地址:加拿大”。

删除 MongoDB 上的数据

要删除 MongoDB 上特定匹配的文档,您可以使用查询“db.deleteOne()”。

1. 使用以下查询删除与过滤器“名称:“Nana””匹配的所有数据。

db.demodb.deleteOne( { "name" : "Nana" } )

现在您将看到输出为“deletedCount: 1”,这意味着匹配的数据只有 1,并且被删除。

2. 接下来,使用查询“db.deleteMany()”删除多个文档,如下所示。

db.demodb.deleteMany(
{
   "address": "Canada",
}
)

现在您将看到输出“deletedCount: 2”,这意味着 2 个文档被删除。

3. 您可以使用下面的'db.find()'查询来验证文档是否已删除。

db.demodb.find ( { address: "Canada" } )
db.demodb.find ( { name: "Nana" } )

您将看到空白输出,这意味着该文档不可用。

结论

恭喜!您已成功安装 MongoDB,并启用了身份验证并在 Rocky Linux 服务器上创建了管理员用户。此外,您还了解了 MongoDB 上与文档或数据库相关的基本 CRUD(创建、读取、更新和删除)操作。对于下一步,您可以在官方文档中找到有关 MongoDB 查询的更多信息。

©2015-2025 艾丽卡 support@alaica.com