如何在 CentOS 8 上安装和保护 MongoDB

MongoDB 是一种常用的面向文档的 NoSQL 数据库程序。 术语 NoSQL 不仅指的是 SQL,它是一种设计数据库的方法。 NoSQL 数据库的建模方式是通过文档完成数据的存储和检索,而不是使用更传统的关系数据库中使用的表格结构(表和行)。

MongoDB 是一个通用数据库,其中数据以键值对的形式存储在灵活的类 JSON 文档中。 每个 MongoDB 数据库都有包含文档的集合。 这些文档可以具有不同的大小、内容和字段数。 它支持可选的模式模型,这意味着不需要事先定义数据库的蓝图。 MongoDB 数据库具有很强的可扩展性。

面向文档的模型使 MongoDB 非常灵活。 它非常擅长负载平衡和复制数据,可以在多台服务器上运行。 这些功能使其即使出现硬件故障也能保持系统运行。 以下是 MongoDB 的一些主要功能:

  • 即席查询
  • 索引
  • 聚合
  • 负载均衡
  • 上限集合
  • 复制

如何在 CentOS 8 上安装 MongoDB

要在您的系统上安装 MongoDB,您必须以 root 用户身份登录或拥有 sudo 特权。

MongoDB 在 CentOS 8 存储库中默认不可用。 因此,首先,我们必须创建一个新文件并将 MongoDB 添加到 CentOS 8 的存储库中。使用下面给出的命令创建一个新文件:

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

现在将以下文本复制并粘贴到上面创建的文本文件中,以便您可以直接从终端安装 MongoDB:

[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 

Save 文件和 close 它。

现在安装 MongoDB 使用下面给出的命令:

sudo dnf install mongodb-org -y 
使用 DNF 安装 MongoDB

上面给出的命令将安装 MongoDB 的最新稳定版本。 截至目前,它是5.0。 您可以访问 MongoDB 的官方网站查看最新版本。 如果要安装特定版本,请在文本文件中将 5.0 替换为您的首选版本。

要验证安装,请运行 MongoDB 数据库:

mongo 
通过 CLI 连接 Mongo Shell

现在执行下面给定的命令来检查系统上安装的版本:

db.version()  
Output: 5.0.1 

现在,使用以下命令退出 shell:

exit  

安装过程完成后,使用以下命令启动 MongoDB:

sudo systemctl start mongod 

现在使用下面给出的命令启用 MongoDB 服务。

sudo systemctl enable mongod 

您可以使用下面给出的命令来检查 MongoDB 服务的状态:

sudo systemctl status mongod 
检查 MongoDB 服务MongoDB 服务状态

如何启用 MongoDB 身份验证

现在我们已经在我们的系统上成功安装了 MongoDB,我们将对其进行配置以使其更安全。

MongoDB 默认禁用身份验证。 这允许任何用户修改、创建、删除或与数据库交互。 建议启用身份验证并限制对 MongoDB 的访问。 可以通过编辑以下配置文件来启用 MongoDB 身份验证:

nano /etc/mongod.conf  

在首选浏览器中打开配置文件后,搜索#security。 通过删除 # 符号取消对安全部分的注释,并在下一行添加授权:启用。 “authorization: enabled” 行应该使用两个空格缩进。 完成编辑后,配置文件应如下所示:

在 Mongodb 中启用授权在 Mongodb 服务器中启用授权

Save 如果您使用的是 Nano,请使用 Ctrl + X 退出文件。 现在将更改应用于 MongoDB; 使用以下命令重新启动服务:

systemctl restart mongod  

您可以再次使用上述命令检查MongoDB服务的状态,以验证该服务是否已成功重启。

如何为 MongoDB 创建管理员用户

现在我们将创建一个 admin 将拥有所有管理权限的 MongoDB 用户。 创建一个新的 MongoDB admin 用户,首先使用以下命令访问 MongoDB 服务:

mongo  

现在执行以下命令以将该服务用作 admin:

use admin 

现在使用下面给定的命令来创建一个新用户:

db.createUser( { user: "admin1", pwd: "pass", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } ) 

您可以使用首选用户名和密码替换 admin1 和 pass。

在 MongoDB 中创建管理员用户在 MongoDB 中创建管理员用户

现在使用下面给定的命令退出 shell:

exit 

如何验证 MongoDB 身份验证

现在您将无法在没有身份验证的情况下在 MongoDB shell 上运行命令,因为我们已将其配置为需要身份验证。

您可以打开 MongoDB 服务并尝试运行不同的命令来验证这一点:

show users 
MongoDB 授权错误未经授权的MongoDB错误
show dbs 

在上面的示例中,由于访问现在受到限制,因此未显示任何输出。

您可以使用以下命令以管理用户身份访问 MongoDB 服务:

mongo -u admin1 -p --authenticationDatabase admin  

现在,如果我再次使用 show dbs 命令,我会得到以下输出:

show dbs 
Output: admin      0.000GB config     0.000GB local      0.000GB 

结论

MongoDB 是一个免费的开源 NoSQL 数据库。 与传统的基于关系的数据库相比,它为开发人员提供了更多的灵活性。 它将数据存储在类似 JSON 的文档中,允许在客户端和数据库之间进行更快、更有效的数据传输。

在本综合指南中,我们学习了在 CentOS 8 操作系统上安装和配置 MongoDB。