如何在AlmaLinux 9上安装MongoDB
本教程适用于这些操作系统版本
- AlmaLinux 9
- 阿尔玛Linux 8
在此页面上
- 先决条件
准备系统(禁用 thp、设置 ulimit 和 sysctl.conf)
- 禁用透明大页 (THP)
- 设置 ulimit
- 设置 sysctl.conf
MongoDB 是一个开源、跨平台、分布式 NoSQL(非 SQL 或非关系型)数据库系统。 MongoDB不像传统的SQL数据库那样将数据存储在表中,而是使用灵活的文档来存储各种数据形式。 MongoDB 使用二进制 JSON 格式 BSON 来存储数据。
MongoDB 是一个分布式 NoSQL 数据库,具有内置的高可用性、自动故障转移和数据冗余,以及通过跨分布式集群的分片进行水平扩展。它支持多区域地理部署,并提供查询 API,支持 CRUD 操作(读取和写入)、数据聚合管道、文本搜索和地理空间查询。
本指南将向您展示如何在Alma Linux 9服务器上安装MongoDB。您还将启用 MongoDB 身份验证、为 MongoDB 设置管理员用户,并为您的应用程序创建新的数据库和用户。
先决条件
要开始使用本指南,请确保您具备以下条件:
- Alma Linux 9 服务器
- 具有管理员权限的非 root 用户
准备系统(禁用 thp、设置 ulimit 和 sysctl.conf)
在本部分中,您将准备并设置 ALma Linux 服务器以安装 MongoDB。以下是你必须做的三项主要工作:
- 通过 systemd 服务禁用透明大页 (THP)
- 增加“mongod”用户的最大进程数和打开文件数
- 通过/etc/sysctl.conf'文件设置vm-max fs
首先,运行以下“dnf”命令将“nano”文本编辑器安装到您的Alma Linux系统。
sudo dnf install nano -y
禁用透明大页 (THP)
现在创建一个新的服务文件“/etc/systemd/system/disable-thp.service”以禁用透明大页 (THP)。该服务也将在每次系统启动时运行。
sudo nano /etc/systemd/system/disable-thp.service
将以下配置插入到文件中。
[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 管理器并应用您的更改。
sudo systemctl daemon-reload
最后,使用以下命令启动并启用“disable-thp.service”。这样,THP 将在启动时自动禁用。
sudo systemctl enable --now disable-thp.service
设置 ulimit
使用以下“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
保存文件并退出编辑器。
设置 sysctl.conf
使用“nano”编辑器打开文件“/etc/sysctl.conf”。
sudo nano /etc/sysctl.conf
添加以下行来设置 fs.file-max、最大映射计数并启用交换。
fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1
保存文件并退出编辑器。
现在运行下面的“sysctl”命令来应用您的更改。
sudo sysctl -p
或者,您也可以重新启动服务器以应用更改。
sudo reboot
安装 MongoDB
现在,配置您的Alma Linux服务器后,使用以下命令启动MongoDB服务器安装 - 在本例中,您将在Alma Linux 9服务器上安装MongoDB 7.0。
首先,使用以下“nano”编辑器创建一个新的 MongoDB 存储库文件“/etc/yum.repos.d/mongodb-org-7.0.repo”。
sudo nano /etc/yum.repos.d/mongodb-org-7.0.repo
将以下配置插入到文件中。
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc
保存文件并退出编辑器。
现在运行下面的“dnf”命令列出Alma Linux服务器上的可用存储库。您将看到 MongoDB 存储库已添加。
sudo dnf repolist
接下来,运行下面的“dnf install”命令将 MongoDB 和 MongoDB shell 安装到您的系统。输入“Y”确认安装。
sudo dnf install mongodb-org mongodb-mongosh
安装完成后,启动并启用 MongoDB 'mongod' 服务,并检查 'mongod' 服务状态以确保其正在运行。
sudo systemctl enable --now mongod
sudo systemctl status mongod
您可以在下面看到MongoDB正在Alma Linux服务器上运行。
启用 MongoDB 身份验证
此时,MongoDB服务器正在您的Alma Linux服务器上运行。现在,您将通过启用密码身份验证并设置新的 MongoDB 管理员用户来保护 MongoDB 安装。此外,您还将学习用于管理 MongoDB 服务器的基本“mongosh”或 MongoDB shell。
首先,使用下面的“mongosh”命令登录 MongoDB 服务器。
mongosh
登录 MongoDB 后,运行以下查询以禁用 MongoDB 遥测。
disableTelemetry()
现在切换到数据库“admin”并运行下面的查询来设置 MongoDB 的管理员用户。在此示例中,您将创建一个新用户“myAliceAdmin”作为 MongoDB 管理员。另外,请在出现提示时输入您的密码。
use admin
db.createUser(
{
user: "myAliceAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)
如果创建了新用户,您将看到输出“{ ok: 1 }”。
输入“quit()”退出 MongoDB 服务器。
接下来,使用“nano”编辑器打开文件“/etc/mongod.conf”。
sudo nano /etc/mongod.conf
取消注释“安全”选项并添加“授权:已启用”以在 MongoDB 上启用密码身份验证。
security:
authorization: enabled
保存文件并退出编辑器。
现在运行下面的“systemctl”命令来重新启动“mongod”服务并应用您的更改。这样,MongoDB 服务器就应该在启用身份验证的情况下运行。
sudo systemctl restart mongod
接下来,运行下面的“mongosh”命令登录 MongoDB。
mongosh
使用以下查询切换到数据库“admin”并以用户“myAliceAdmin”身份进行身份验证。当询问时输入您的密码。
use admin
db.auth("myAliceAdmin", passwordPrompt())
如果身份验证成功,您将得到输出“{ ok: 1 }”。
此外,您还可以通过下面的“mongosh”命令使用用户“myAliceAdmin”登录数据库“admin”。
mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAliceAdmin" -p
在 MongoDB 中创建用户
在本部分中,您将通过“mongosh”MongoDB 客户端在 MongoDB 中创建新数据库和用户。
要在 MongoDB 中创建新数据库和用户,请运行以下查询。在此示例中,您将创建一个新数据库“mydb”和一个新用户“myUser”。出现提示时输入您的密码。
use mydb
db.createUser(
{
user: "myUser",
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)
如果创建了新数据库和用户,您将获得输出“{ ok: 1 }”,然后键入“quit()”退出。
接下来,使用下面的“mongosh”命令登录 MongoDB 服务器。出现提示时输入“myUser”的密码。
mongosh --port 27017 --authenticationDatabase \
"mydb" -u "myUser" -p
如果成功,您将得到 MongoDB shell 的提示。
结论
恭喜!您已经在Alma Linux 9服务器上完成了MongoDB的安装。您还通过创建管理员用户并启用密码身份验证来保护 MongoDB。最后,您还学习了如何在 MongoDB 中创建数据库和用户,以及一些用于通过命令行连接到 MongoDB 服务器的基本“mongosh”命令。