如何从 Ubuntu 18.04 上的默认 APT 存储库安装 MongoDB

作者选择Creative Commons Corporation接受 100 美元的捐赠,作为Write for DOnations计划的一部分。

介绍

MongoDB,也称为Mongo,是现代 Web 应用程序中常用的免费开源 NoSQL 文档数据库。

在本教程中,您将安装 MongoDB,管理其服务,并可选择启用远程访问。

注意:在撰写本文时,本教程安装了 MongoDB 3.6,这是默认 Ubuntu 存储库中可用的版本。但是,我们通常建议安装最新版本的 MongoDB —在撰写本文时为4.4— 相反。如果您想安装最新版本的 MongoDB,我们鼓励您遵循本指南,了解如何从源代码在 Ubuntu 18.04 上安装 MongoDB

先决条件

要学习本教程,您需要:

第 1 步 – 安装 MongoDB

Ubuntu 的官方软件包存储库包括 MongoDB,这意味着我们可以使用apt. 正如介绍中提到的,默认存储库中可用的版本不是最新的。要安装最新版本的 Mongo,请按照本教程进行操作

首先,更新包列表以获得最新版本的存储库列表:

  • sudo apt update

现在安装 MongoDB 包本身:

  • sudo apt install -y mongodb

此命令会安装多个包含稳定版本 MongoDB 的软件包,以及用于 MongoDB 服务器的有用管理工具。安装后数据库服务器自动启动。

接下来,让我们验证服务器是否正在运行并正常工作。

步骤 2 — 检查服务和数据库

安装过程会自动启动 MongoDB,但让我们验证服务是否已启动以及数据库是否正在运行。

首先,检查服务的状态:

  • sudo systemctl status mongodb

你会看到这个输出:

Output
mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-05-26 07:48:04 UTC; 2min 17s ago Docs: man:mongod(1) Main PID: 2312 (mongod) Tasks: 23 (limit: 1153) CGroup: /system.slice/mongodb.service └─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

systemd,MongoDB 服务器已启动并运行。

我们可以通过实际连接到数据库服务器并执行诊断命令来进一步验证这一点

执行这个命令:

  • mongo --eval 'db.runCommand({ connectionStatus: 1 })'

这将输出当前数据库版本、服务器地址和端口以及状态命令的输出:

Output
MongoDB shell version v3.6.3 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.3 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

的价值1ok响应中的字段表示服务器是否正常工作。

接下来,我们将看看如何管理服务器实例。

第 3 步 – 管理 MongoDB 服务

MongoDB 作为 systemd 服务安装,这意味着您可以使用标准systemd命令以及 Ubuntu 中的所有其他系统服务来管理它

要验证服务的状态,请键入:

  • sudo systemctl status mongodb

您可以通过键入以下内容随时停止服务器:

  • sudo systemctl stop mongodb

要在停止时启动服务器,请键入:

  • sudo systemctl start mongodb

您还可以使用单个命令重新启动服务器:

  • sudo systemctl restart mongodb

默认情况下,MongoDB 配置为随服务器自动启动。如果要禁用自动启动,请键入:

  • sudo systemctl disable mongodb

再次启用它同样容易。为此,请使用:

  • sudo systemctl enable mongodb

接下来,让我们调整 MongoDB 安装的防火墙设置。

步骤 4 — 调整防火墙(可选)

假设您已按照初始服务器设置教程说明启用服务器上的防火墙,则 MongoDB 服务器将无法从 Internet 访问。

如果您打算仅在本地将 MongoDB 服务器与在同一服务器上运行的应用程序一起使用,则这是推荐且安全的设置。但是,如果您希望能够从 Internet 连接到您的 MongoDB 服务器,则必须允许ufw.

要允许27017从任何地方通过其默认端口访问 MongoDB ,您可以使用. 但是,在默认安装中启用对 MongoDB 服务器的 Internet 访问使任何人都可以不受限制地访问数据库服务器及其数据。sudo ufw allow 27017

在大多数情况下,只能从某些受信任的位置访问 MongoDB,例如托管应用程序的另一台服务器。要完成此任务,您可以允许访问 MongoDB 的默认端口,同时指定将明确允许连接的另一台服务器的 IP 地址:

  • sudo ufw allow from your_other_server_ip/32 to any port 27017

您可以使用以下命令验证防火墙设置的更改ufw

  • sudo ufw status

您应该27017在输出中看到允许的端口流量

输出
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
27017                      ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
27017 (v6)                 ALLOW       Anywhere (v6)

如果您决定只允许某个 IP 地址连接到 MongoDB 服务器,则输出中将列出允许位置的 IP 地址而不是Anywhere

您可以在UFW Essentials: Common Firewall Rules and Commands 中找到更高级的防火墙设置来限制对服务的访问

即使端口是开放的,MongoDB 目前也只监听本地地址127.0.0.1要允许远程连接,请将服务器的可公开路由的 IP 地址添加到mongod.conf文件中。

在编辑器中打开 MongoDB 配置文件:

  • sudo nano /etc/mongodb.conf

将您服务器的 IP 地址添加到bindIP值中:

...
logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

...

请务必在现有 IP 地址和您添加的 IP 地址之间放置一个逗号。

保存文件,退出编辑器,重启MongoDB:

  • sudo systemctl restart mongodb

MongoDB 现在正在侦听远程连接,但任何人都可以访问它。按照如何在 Ubuntu 16.04 上安装和保护 MongoDB 的第 2 部分添加管理用户并进一步锁定。

结论

您可以在这些 DigitalOcean 社区文章 中找到有关如何配置和使用 MongoDB 的更深入的教程MongoDB官方文档也是关于 MongoDB 提供的可能性的重要资源。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁