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
上面给出的命令将安装 MongoDB 的最新稳定版本。 截至目前,它是5.0。 您可以访问 MongoDB 的官方网站查看最新版本。 如果要安装特定版本,请在文本文件中将 5.0 替换为您的首选版本。
要验证安装,请运行 MongoDB 数据库:
mongo
现在执行下面给定的命令来检查系统上安装的版本:
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 身份验证:
nano /etc/mongod.conf
在首选浏览器中打开配置文件后,搜索#security。 通过删除 # 符号取消对安全部分的注释,并在下一行添加授权:启用。 “authorization: enabled” 行应该使用两个空格缩进。 完成编辑后,配置文件应如下所示:
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。
现在使用下面给定的命令退出 shell:
exit
如何验证 MongoDB 身份验证
现在您将无法在没有身份验证的情况下在 MongoDB shell 上运行命令,因为我们已将其配置为需要身份验证。
您可以打开 MongoDB 服务并尝试运行不同的命令来验证这一点:
show users
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。