MongoDB 是一种开源、跨平台、分布式 NoSQL(非 SQL 或非关系型)数据库系统。MongoDB 不像传统的 SQL 数据库那样将数据存储在表格中,而是使用灵活的文档来存储各种数据形式。MongoDB 使用二进制 JSON 格式(BSON)来存储数据。
MongoDB 是一种分布式 NoSQL 数据库,具有内置高可用性、自动故障转移和数据冗余功能,并可通过分布式集群中的分片进行水平扩展。它支持多区域地理部署,提供的查询 API 支持 CRUD 操作(读写)、数据聚合管道、文本搜索和地理空间查询。
在本指南中,我们将向你展示如何在 Ubuntu 24.04 服务器上安装 MongoDB。你将准备好 Ubuntu 服务器,添加 MongoDB 资源库,安装 MongoDB 服务器,为 MongoDB 创建管理员,然后启用 MongoDB 身份验证。最后,你将学习如何使用 “mongosh ”shell 在 MongoDB 中创建用户和数据库。
在开始之前,请确保您具备以下条件:
在 Ubuntu 系统上安装 MongoDB 之前,请确保已配置好系统。在本例中,你将对 Ubuntu 服务器进行以下配置:
禁用透明超大页面 (THP)
要在系统上禁用 THP,需要创建一个新的 systemd 服务文件,该文件将在每次启动或启动时自动执行。
使用 “nano ”编辑器创建新的服务文件“/etc/systemd/system/disable-thp.service”。
sudo nano /etc/systemd/system/disable-thp.service
插入以下配置,通过服务禁用 THP。
[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 ”服务。这样,THP 就会在系统启动时禁用。
sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service
设置上限
禁用 THP 后,需要将用户 “mongod ”的默认最大文件和进程数至少增至 “64000”。
使用以下 “nano ”编辑器命令创建新文件“/etc/security/limits.d/mongodb.conf”。
sudo nano /etc/security/limits.d/mongodb.conf
插入以下配置,将最大文件打开和进程数增加到 “64000”。
mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000
保存文件并退出编辑器。
设置交换性和 fs.file-max
最后,你需要增加默认的 “fs.file-max ”并启用 MongoDB 的交换性。为此,你需要编辑“/etc/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
配置好 Ubuntu 系统后,就可以安装 MongoDB 了。在本节中,你将从 MongoDB 官方软件仓库安装最新版本的 MongoDB 8.0。
首先,运行下面的 “apt ”命令更新你的Ubuntu软件包索引,并安装 “gnupg ”和 “curl ”软件包。输入 “Y ”确认安装。
sudo apt update && sudo apt install gnupg curl
现在运行以下命令,为 MongoDB 添加 GPG 密钥和存储库。在本例中,你将在 Ubuntu 24.04 服务器上安装 MongoDB 8。
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
接下来,运行下面的 “apt ”命令更新软件包索引,并在系统中安装 “mongodb-org ”软件包。输入 “Y ”继续安装。
sudo apt update && sudo apt install mongodb-org
安装完成后,执行下面的 “systemctl ”命令重新加载 systemd 管理器。mongod "服务就会添加到你的 Ubuntu 系统中。
sudo systemctl daemon-reload
最后,运行下面的命令启动、启用并验证 MongoDB “mongod ”服务。你会看到 MongoDB 正在你的系统上运行。
sudo systemctl enable --now mongod
sudo systemctl status mongod
安装 MongoDB 后,你将通过以下步骤确保 MongoDB 服务器安装的安全性:
创建 MongoDB 管理员用户
在本节中,你将通过 “mongosh ”shell 创建一个新的 MongoDB 管理员用户。mongosh “shell是与MongoDB服务器交互的客户端命令行,就像MySQL/MariaDB的 ”mysql “和PostgreSQL的 ”psql"。
要创建管理员用户,请使用下面的 “mongosh ”shell 命令登录 MongoDB 服务器。
mongosh
现在运行下面的查询来禁用 MongoDB 遥测功能。
disableTelemetry()
接下来,转到数据库 “admin”,运行以下查询为 MongoDB 创建一个新的管理员用户。在本示例中,你将创建一个新用户 “myAdmin”,然后根据提示输入新密码。
use admin
db.createUser(
{
user: "myAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)
现在输入 “quit() ”退出 MongoDB shell。
启用 MongoDB 身份验证
创建了 MongoDB 管理用户后,就可以通过“/etc/mongod.conf ”文件启用 MongoDB 身份验证了。
使用下面的 “nano ”编辑器命令打开默认的 MongoDB 服务器配置文件“/etc/mongod.conf”。
sudo nano /etc/mongod.conf
添加以下行以启用 MongoDB 身份验证。
security:
authorization: enabled
完成后,保存文件并退出编辑器。
现在运行下面的 “systemctl ”命令重启 MongoDB 服务器并应用更改。这样,MongoDB 身份验证就会启用。
sudo systemctl restart mongod
既然已经确保了 MongoDB 服务器安装的安全性,那么我们就用 “mongosh ”shell 和新的管理员用户及密码登录 MongoDB 来验证配置。
使用下面的 “mongosh ”命令,以用户 “myAdmin ”身份登录 MongoDB 服务器。根据提示输入密码。
mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAdmin" -p
登录后,运行下面的查询检查连接状态。您应该已使用 “myAdmin ”用户登录 MongoDB 服务器。
db.runCommand({connectionStatus : 1})
现在输入 “quit() ”退出 MongoDB 服务器。
在本节中,你将学习如何使用 “mongosh ”shell 在 MongoDB 中创建新数据库和用户。因此,请确保您已以管理员用户身份登录 MongoDB。
首先,运行下面的查询移动到数据库 “mydb”。
use mydb
现在运行下面的查询,创建新用户 “myUser”,并允许对数据库 “mydb ”进行读写访问。要求输入密码时请输入。
db.createUser(
{
user: "myUser",
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)
键入 “quit() ”退出 MongoDB 服务器。
现在运行下面的 “mongosh ”命令,以 “myUser ”身份登录数据库 “mydb”。根据提示输入密码。
mongosh --port 27017 --authenticationDatabase \
"mydb" -u "myUser" -p
登录后,使用以下查询检查连接状态。
db.runCommand({connectionStatus : 1})
您可以在下面看到,您已使用用户 “myUser ”连接到 MongoDB 服务器,并拥有数据库 “mydb ”的权限。
恭喜您!您已经在 Ubuntu 24.04 服务器上完成了 MongoDB 服务器的安装。您还创建了管理员用户并确保了 MongoDB 的安装安全。然后,你已经学会了如何使用 “mongosh ”连接到 MongoDB 服务器,以及在 MongoDB 中管理用户和数据库的基本查询。
上一条: 如何在Linux上删除Docker映像
下一条: 没有了