跳至主要内容

如何在 Ubuntu 上安装 MongoDB:新手分步指南

在这篇对新手友好的教程中,学习如何在 Ubuntu 上安装 MongoDB、配置服务并验证设置。
· 4分钟 阅读

使用 AI 探索

准备在 Linux 上尝试 MongoDB,并选择了 Ubuntu 作为您的工作环境?非常明智的选择,因为整个过程相当简单,您很快就能让 MongoDB 运行起来!

在本教程中,我们将通过 Ubuntu 包管理器安装 MongoDB,并进行一些小的易用性改进,以更好地将您的安装与外部世界隔离和加固。您也可以查看视频指南。

虽然我们将演示原生安装体验,但如果您更愿意在 Ubuntu 上通过 Docker 使用 MongoDB,请查看我之前的教程:在 Docker 中运行 MongoDB。 

先决条件

要顺利完成本教程,您需要使用较新的 Ubuntu 版本。我使用的是带有 ARM CPU 的 Ubuntu 25.04 桌面版,但其他 CPU 架构或 Ubuntu 服务器版一般也没有问题。 

虽然用于操作 MongoDB 的工具相当灵活,但在本示例中,MongoDB Shell将是与 MongoDB 交互的主要工具。

使用包管理器在 Ubuntu 上安装 MongoDB 社区版

由于 Ubuntu 是极为流行的 Linux 发行版,安装 MongoDB 十分顺畅,就像安装其他软件包一样。流程包括将 MongoDB 添加为包管理器的软件源、安装软件包、然后运行已安装的软件包。

首先导入 MongoDB 的 GPG 密钥。在命令行中执行以下命令:

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor

根据您希望使用的 MongoDB 主版本,以上命令和后续命令中的版本信息可能需要调整。本示例将使用 MongoDB 8.X。

导入 GPG 密钥后,我们可以继续创建软件包列表文件。执行以下命令:

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

需要说明的是:是的,我使用的是 Ubuntu 25.04(Plucky),而以上软件包列表引用的是 MongoDB 的 24.04(Noble)。这对我来说工作正常,但请在版本差异显著时保持关注,否则可能会产生意外结果。

此时,我们可以刷新计算机上的包管理器:

sudo apt-get update

要安装 MongoDB,执行以下命令:

sudo apt-get install -y mongodb-org

上述命令将安装 MongoDB 的最新版本,但如果您需要特定版本,可以在命令中包含版本信息,例如 mongodb-org=8.0.11。

此时 MongoDB 应该已安装在计算机上。不过,在安装完成的当下它可能并未运行。要在 Ubuntu 上运行 MongoDB,执行以下命令:

sudo systemctl start mongod

您可以通过使用 MongoDB Shell、MongoDB Compass 或任意类似工具连接到实例来验证 MongoDB 是否正常工作。 

以MongoDB Shell为例,您可以执行以下命令:

mongosh "mongodb://localhost:27017"

当然,上述命令假定您在同一台计算机上连接该 MongoDB 实例。

如果需要停止、重启 MongoDB 等,您可以使用 Ubuntu 上常见的各类 systemctl 命令。

为 Ubuntu 上的 MongoDB 实例添加基础安全性

默认情况下,新安装的 MongoDB 是禁用身份验证的。根据您的用例,这可能没问题,但通常建议至少启用身份验证与授权。

当然,您可能还希望探索其他加固最佳实践,例如防火墙规则等。但在本教程范围内,为 Ubuntu 上的 MongoDB 设置用户名和密码是一个良好的起点。

在 Ubuntu 上执行以下命令:

sudo vi /etc/mongod.conf

如果您更愿意使用 nano 或其他工具编辑该文件,也完全可以。

定位到 #security 这一行,并将其修改为如下内容:

security:
	authorization: "enabled"

保存文件后,执行以下命令重启 MongoDB 实例:

sudo systemctl restart mongod

我们还没完成。目前只是启用了身份验证,还需要创建管理员用户。

如果您使用的是MongoDB Shell,执行以下命令:

use admin;

db.createUser({
	"user": "nraboy",
	"pwd": "mongodb",
	"roles": [
		{
			"role": "userAdminAnyDatabase",
			"db": "admin"
		}
	]
});

您可能会希望将 user 和 pwd 更改为更合理且更安全的内容,这里仅作示例。

现在,当您想使用 MongoDB Shell 连接到 MongoDB 时,可以使用如下命令:

mongosh --host localhost --port 27017 -u nraboy -p --authenticationDatabase admin

根据您所用工具的不同,体验会略有差异,但思路可参考以上信息。

总结

您刚刚了解了如何在 Linux 主机(尤其是 Ubuntu)上部署 MongoDB。MongoDB 的优点之一是它非常容易安装并在各类硬件与环境中运行。 

如果MongoDB Atlas不是选项而您又需要在 Ubuntu 之外做探索,或许值得看看我的另一篇教程,演示如何使用 Docker 进行容器化部署。不过,如果您已准备好迈向下一步,不妨查看我之前关于在 MongoDB 中创建数据库的教程。

如果您正在使用 Python,并偏好结构化的学习方式,欢迎查看课程Introduction to MongoDB in Python。

FAQs

我可以使用 Snap 或 Flatpak 在 Ubuntu 上安装 MongoDB 吗?

尽管 Snap 和 Flatpak 在 Ubuntu 上支持许多应用,但为确保兼容性和更新,安装 MongoDB 最好使用官方的 APT 仓库。

MongoDB 是否同时支持 Ubuntu 服务器版和桌面版?

可以。MongoDB 在 Ubuntu 服务器版和桌面版上都能无缝运行。安装流程几乎一致,但服务器环境可能需要额外的安全性考虑。

如何在 Ubuntu 上彻底卸载 MongoDB?

先运行 sudo apt-get purge mongodb-org*,然后运行 sudo rm -r /var/log/mongodb /var/lib/mongodb,以彻底移除 MongoDB 及其相关数据。

如何查看 Ubuntu 上安装的 MongoDB 版本?

根据要检查的组件,使用 mongod --version 或 mongosh --version。它们会返回当前安装的版本。

如何在 Ubuntu 上启用 MongoDB 开机自启?

使用 sudo systemctl enable mongod 启用 MongoDB 服务。这样可确保系统每次启动时自动运行 MongoDB。

如何在 Ubuntu 上不出问题地更新 MongoDB?

为安全更新 MongoDB,先检查与当前配置和数据的兼容性。若使用官方仓库,再运行 sudo apt-get update && sudo apt-get upgrade mongodb-org。

如何在 Ubuntu 上备份我的 MongoDB 数据?

使用 MongoDB 附带的 mongodump 工具创建备份。您也可以结合 cron 编写脚本以定期自动备份。

将运行在 Ubuntu 上的 MongoDB 暴露到互联网是否安全?

默认情况下不安全。您应始终使用防火墙、VPN 或 SSH 隧道,并强制启用身份验证。将未加固的 MongoDB 直接暴露在互联网中存在安全风险。

Nic Raboy

作者

Nic Raboy

Nic Raboy 是 MongoDB 的开发者关系主管,带领一支由 Python、Java、C# 与 PHP 开发者组成的团队,创作优质内容,帮助开发者在项目中成功使用 MongoDB。他具备 Golang 与 JavaScript 经验,并常常撰写自己在开发过程中的见闻与实践。

主题