CentOS 8 上 MongoDB 4.2 安装教程

MongoDB 是一个免费的开源文档数据库。它属于 NoSQL 数据库家族,与传统的基于表的 SQL 数据库(如 MySQL 和 PostgreSQL) 不同。

在 MongoDB 中,数据存储在灵活的,类似于 JSON 的文档中,其中文档之间的字段可能会有所不同。它不需要预定义的架构,并且数据结构可以随时间更改。

本教程说明了如何在 CentOS 8 服务器上安装和配置 MongoDB 4.2 社区版。

安装 MongoDB

MongoDB 在 CentOS 8 核心存储库中不可用。我们将启用官方的 MongoDB 存储库并安装软件包。

在撰写本文时,可从官方 MongoDB 存储库获得的 MongoDB 的最新版本是 4.2 版。在开始安装之前,请访问 MongoDB 文档的在 Red Hat 上安装 部分,并检查是否有可用的新版本。

以 root 或具有 sudo 特权的用户执行以下步骤,以在 CentOS 8 系统上安装 MongoDB :

  1. 通过 mongodb-org.repo/etc/yum.repos.d/ 目录内创建一个新的存储库文件 /etc/yum.repos.d/mongodb-org.repo 来启用 MongoDB 存储库:

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

    如果要安装旧版本的 MongoDB ,请使用您的首选版本替换上面文件内容中的 4.2

  2. 安装 mongodb-org 元软件包:

    sudo dnf install mongodb-org
    

    在安装过程中,您将提示您导入 MongoDB GPG 密钥。输入 y 并点击 Enter

    以下软件包将作为 mongodb-org 软件包的一部分安装在您的系统上:

    • mongodb-org-servermongod 守护程序以及相应的初始化脚本和配置。
    • mongodb-org-mongosmongos 守护进程。
    • mongodb-org-shell  - mongo shell ,它是 MongoDB 的交互式 JavaScript 接口,用于执行命令行中的管理任务。
    • mongodb-org-tools - 包含几个用于导入和导出数据,统计信息以及其他实用程序的 MongoDB 工具。
  3. 安装完成后,启用并启动 MongoDB 服务:

    sudo systemctl enable mongod --now
    
  4. 要验证安装,请连接到 MongoDB 数据库服务器并打印服务器版本:

    mongo
    

    运行以下命令以显示 MongoDB 版本:

    db.version()
    

    输出看起来像这样:

    4.2.3
    

配置 MongoDB

MongoDB 配置文件位于 /etc 目录中 mongod.conf 。该文件为 YAML 格式。

在大多数情况下,默认配置设置已足够。但是,对于生产环境,我们建议取消对安全性部分的注释并启用授权,如下所示:

文件 /etc/mongod.conf

security:
  authorization: enabled

authorization 选项启用了基于角色的访问控制 (RBAC) ,它可以控制用户对数据库资源和操作的访问。如果禁用此选项,则每个用户将有权访问任何数据库并执行任何操作。

对 MongoDB 配置文件进行更改后,重新启动 mongod 服务:

sudo systemctl restart mongod

有关 MongoDB 配置选项的更多信息,请访问“配置文件选项” 文档页面。

创建管理 MongoDB 用户

如果启用了 MongoDB 身份验证,则需要创建一个可以访问和管理 MongoDB 实例的管理用户。

首先,使用以下命令访问 MongoDB shell :

mongo

键入以下命令以连接到 admin 数据库:

use admin
switched to db admin

创建一个具有以下 userAdminAnyDatabase 角色的新用户 mongoAdmin

db.createUser(
Successfully added user: {
	"user" : "mongoAdmin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

您可以根据需要命名 MongoDB 管理用户。

使用以下命令退出 mongo shell :

quit()

要测试更改,请使用先前创建的管理用户访问 mongo shell :

mongo -u mongoAdmin -p --authenticationDatabase admin
MongoDB shell version v4.2.3
Enter password:
use admin
switched to db admin

现在,使用以下命令打印用户:

show users
{
	"_id" : "admin.mongoAdmin",
	"user" : "mongoAdmin",
	"db" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	],
	"mechanisms" : [
		"SCRAM-SHA-1",
		"SCRAM-SHA-256"
	]
}

结论

我们已经向您展示了如何在 CentOS 8 服务器上安装和配置 MongoDB 4.2 。

有关此主题的更多信息,请查阅《 MongoDB 4.2 手册》。