如何在 Debian 12 上安装 MongoDB如何在 Debian 12 上安装 MongoDB如何在 Debian 12 上安装 MongoDB如何在 Debian 12 上安装 MongoDB
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Debian 12 上安装 MongoDB

发表 admin at 2025年2月28日
类别
  • 未分类
标签

本教程适用于这些操作系统版本

  • Debian 12(书虫)
  • Debian 11(靶心)

在此页面上

  1. 先决条件
  2. 准备 Debian 服务器
  3. 在 Debian 上安装 MongoDB 服务器
  4. 通过身份验证保护 MongoDB 服务器
  5. 测试 MongoDB 身份验证
  6. 创建第一个数据库和用户
  7. 结论

MongoDB 是一个开源、跨平台、分布式 NoSQL(非 SQL 或非关系型)数据库系统。 MongoDB不像传统的SQL数据库那样将数据存储在表中,而是使用灵活的文档来存储各种数据形式。 MongoDB 使用二进制 JSON 格式 BSON 来存储数据。

MongoDB 是一个分布式 NoSQL 数据库,内置高可用性、自动故障转移和数据冗余,以及通过跨分布式集群分片进行水平扩展,并且支持多区域地理部署。 MongoDB 还提供查询 API,支持 CRUD 操作(读取和写入)、数据聚合管道、文本搜索和地理空间查询。

在本教程中,您将学习如何在 Debian 12 服务器上安装 MongoDB。您还将了解如何启用 MongoDB 身份验证、使用“mongosh”MongoDB 客户端以及使用基本查询在 MongoDB 中创建新用户和数据库。

先决条件

要开始学习本教程,请确保您具备以下条件:

  • Debian 12 服务器
  • 具有管理员权限的非 root 用户

准备 Debian 服务器

在将 MongoDB 安装到 Debian 服务器之前,建议应用以下设置:

  • 通过 systemd 脚本禁用透明大页面 (THP)
  • 增加 MongoDB 用户的默认限制
  • 通过“/etc/sysctl.conf”文件启用交换并增加 max_mmap 内存

现在让我们配置 Debian 服务器。

首先,运行下面的“nano”命令来创建一个新的服务文件/etc/systemd/system/disable-thp.service。

sudo nano /etc/systemd/system/disable-thp.service

粘贴以下服务脚本以将“transparent_hugepage”设置为“never”。

[Unit]
Description=Disable Transparent Huge Pages (THP)
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"
[Install]
WantedBy=multi-user.target

保存文件并退出。

现在运行以下“systemctl”命令来重新加载 systemd 管理器。然后,启动并启用“disable-thp”服务。这样,“transparent_hugepage”将在每次系统启动时禁用。

sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service

接下来,使用“nano”编辑器创建一个新文件/etc/security/limits.d/mongodb.conf。

sudo nano /etc/security/limits.d/mongodb.conf

插入以下配置,将用户“mongod”的最大进程和文件限制设置为“64000”。

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000

完成后,保存文件并退出。

之后,使用以下内容编辑“/etc/sysctl.conf”文件。

sudo nano /etc/sysctl.conf

将下面的配置插入到该行的底部。

fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1

保存文件并退出。

最后,运行下面的“sysctl”命令立即应用对“/etc/sysctl.conf”文件的更改。

sudo sysctl -p

在 Debian 上安装 MongoDB 服务器

现在您已经配置了 Debian 服务器,让我们开始安装 MongoDB。在本例中,您将通过官方 MongoDB 存储库将 MongoDB 7.0 安装到 Debian 服务器。

使用以下命令将“gnupg”和“curl”软件包安装到您的 Debian 系统:

sudo apt install gnupg curl

现在使用以下命令为 Debian 添加 MongoDB GPG 密钥和存储库。在本例中,您将为 MongoDB 7.0 设置存储库。

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

接下来,运行下面的“apt”命令来刷新您的软件包列表并安装“mongodb-org”软件包。

sudo apt update && sudo apt install mongodb-org -y

在以下输出中,您可以看到 MongoDB 安装。

安装完成后,使用“systemctl”命令重新加载 systemd 管理器。

sudo systemctl daemon-reload

启动并启用“mongod”服务,然后验证它以确保该服务正在运行。

sudo systemctl enable --now mongod
sudo systemctl status mongod

如果 MongoDB 正在运行,您将看到如下输出:

通过身份验证保护 MongoDB 服务器

安装 MongoDB 后,您需要通过启用 MongoDB 身份验证来保护您的安装。在本部分中,您将设置 MongoDB 身份验证并为 MongoDB 创建新的管理员用户。这将向您展示如何使用“mongosh”或 MongoDB 客户端以及基本的 MongoDB 查询。

使用下面的“mongosh”命令登录到 MongoDB 服务器。默认 MongoDB 安装没有密码。

mongosh

运行命令“disableTelemetry()”以禁用 MongoDB 的匿名数据收集。

disableTelemetry()

使用“use”查询切换到数据库“admin”。

use admin

现在运行以下查询来创建一个新用户“myAdmin”,该用户将用作 MongoDB 服务器的管理员。当询问时输入您的密码。

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

输入“quit()”命令退出 MongoDB 服务器。

quit()

接下来,使用“nano”编辑器编辑“/etc/mongod.conf”文件。

sudo nano /etc/mongod.conf

取消注释“安全”选项并添加“授权:已启用”以在 MongoDB 上启用身份验证。

security:
  authorization: enabled

保存文件并退出编辑器。

现在运行下面的“systemctl”命令来重新启动 MongoDB 服务器并应用您的修改。

sudo systemctl restart mongod

测试 MongoDB 身份验证

现在您已经创建了管理员用户并在 MongoDB 服务器上启用了身份验证。让我们通过 'myAdmin' 用户登录 MongoDB 服务器来验证您的配置。

运行下面的“mongosh”命令以“myAdmin”用户身份登录 MongoDB 服务器,并在出现提示时输入密码。

mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAdmin" -p

登录后,运行以下查询来检查 MongoDB 服务器的连接状态。

db.runCommand({connectionStatus : 1})

您可以在下面看到您已作为用户“myAdmin”连接到 MongoDB 服务器。

创建第一个数据库和用户

在本部分中,您将创建一个新的数据库和用户,该数据库和用户将通过“mongosh”MongoDB 客户端用于您的应用程序。因此,请确保您处于“mongosh”环境中。

首先,运行“use”查询来创建和切换目标数据库。在此示例中,您将创建一个新数据库“mydb”。您的 MongoDB 提示符将更改为“mydb”。

use mydb

现在运行以下查询来创建一个新用户 'myUser',该用户具有读取和写入数据库“mydb”的权限。当询问时输入新密码。

use mydb
db.createUser(
{
user: "myUser",
pwd: passwordPrompt(),
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)

接下来,运行以下查询来切换“admin”数据库并验证 MongoDB 服务器上的用户列表。

use admin
db.system.users.find()

您应该会看到创建的用户“myAdmin”和“myUser”,如下所示:

现在输入“quit()”以退出 MongoDB 服务器。

最后,使用以下命令以新用户“myUser”身份登录到数据库“mydb”的 MongoDB 服务器。出现提示时输入您的密码。

mongosh --port 27017 -u "myUser" \
--authenticationDatabase "mydb" -p

运行下面的查询来检查您当前的连接

db.runCommand({connectionStatus : 1})

在“authInfo”部分中,您可以看到您已通过用户“myUser”和数据库“mydb”的身份进行身份验证。

结论

恭喜!您已经在 Debian 12 服务器上完成了 MongoDB 7.0 的安装。您还了解了如何通过启用身份验证,然后为 MongoDB 创建新的管理员用户来保护 MongoDB 服务器。最后,您学习了如何为您的应用程序创建新的 MongoDB 数据库和用户。

©2015-2025 Norria support@alaica.com