MongoDB 是一种开源、跨平台、分布式 NoSQL(非 SQL 或非关系型)数据库系统。MongoDB 不像传统的 SQL 数据库那样将数据存储在表格中,而是使用灵活的文档来存储各种数据形式。MongoDB 使用二进制 JSON 格式(BSON)来存储数据。
MongoDB 是一种分布式 NoSQL 数据库,具有内置高可用性、自动故障转移和数据冗余功能,并可通过分布式集群之间的分片进行水平扩展。它支持多区域地理部署,并提供一个查询 API,支持 CRUD 操作(读写)、数据聚合管道、文本搜索和地理空间查询。
本指南将向你展示如何在 Alma Linux 9 服务器上安装 MongoDB。你还将启用 MongoDB 身份验证,为 MongoDB 设置管理员用户,并为应用程序创建新数据库和用户。
要开始学习本指南,请确保你具备以下条件:
在本节中,你将为安装 MongoDB 准备和设置 ALma Linux 服务器。以下是你必须做的三件大事:
因此,首先运行下面的 “dnf ”命令,为你的 Alma Linux 系统安装 “nano ”文本编辑器。
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
设置 ulimits
使用以下 “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
配置好 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 服务器已在 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
取消 “security ”选项并添加 “authorization: enabled ”以启用 MongoDB 的密码验证。
security:
authorization: enabled
保存文件并退出编辑器。
现在运行下面的 “systemctl ”命令重启 “mongod ”服务并应用更改。这样,MongoDB 服务器在运行时就会启用身份验证。
sudo systemctl restart mongod
接下来,运行下面的 “mongosh ”命令登录 MongoDB。
mongosh
切换到数据库 “admin”,以用户 “myAliceAdmin ”身份通过以下查询进行身份验证。要求输入密码时请输入。
use admin
db.auth("myAliceAdmin", passwordPrompt())
如果身份验证成功,将输出"{ ok: 1 }'.
此外,您还可以使用用户 “myAliceAdmin ”通过下面的 “mongosh ”命令登录数据库 “admin”。
mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAliceAdmin" -p
在本节中,你将通过 “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 ”命令。
下一条: 如何在Linux上删除Docker映像