如何在Ubuntu16.04上安装MongoDB

来自菜鸟教程
跳转至:导航、​搜索

介绍

MongoDB 是现代 Web 应用程序中常用的免费开源 NoSQL 文档数据库。 本教程将帮助您在服务器上为生产应用程序环境设置 MongoDB。

先决条件

要遵循本教程,您将需要:

第 1 步 - 添加 MongoDB 存储库

MongoDB 已包含在 Ubuntu 软件包存储库中,但官方 MongoDB 存储库提供了最新版本,并且是推荐的软件安装方式。 在这一步中,我们将把这个官方存储库添加到我们的服务器。

Ubuntu 通过验证软件包是否使用 GPG 密钥签名来确保软件包的真实性,因此我们首先必须为官方 MongoDB 存储库导入它们的密钥。

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

成功导入密钥后,您将看到:

输出

OK

接下来,我们必须添加 MongoDB 存储库详细信息,以便 apt 知道从哪里下载包。

发出以下命令为 MongoDB 创建一个列表文件。

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

添加存储库详细信息后,我们需要更新包列表。

sudo apt-get update

第 2 步 — 安装和验证 MongoDB

现在我们可以安装 MongoDB 包本身。

sudo apt-get install -y mongodb-org

此命令将安装几个包含最新稳定版本 MongoDB 的软件包以及 MongoDB 服务器的有用管理工具。

接下来,使用 systemctl 启动 MongoDB。

sudo systemctl start mongod

您也可以使用 systemctl 来检查服务是否已正常启动。

sudo systemctl status mongod

输出

● mongodb.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2016-04-25 14:57:20 EDT; 1min 30s ago
 Main PID: 4093 (mongod)
    Tasks: 16 (limit: 512)
   Memory: 47.1M
      CPU: 1.224s
   CGroup: /system.slice/mongodb.service
           └─4093 /usr/bin/mongod --quiet --config /etc/mongod.conf

最后一步是启用系统启动时自动启动 MongoDB。

sudo systemctl enable mongod

MongoDB 服务器现已配置并运行,您可以使用 systemctl 命令管理 MongoDB 服务(例如 sudo systemctl stop mongodsudo systemctl start mongod)。

第 3 步 — 调整防火墙(可选)

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

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

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

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

sudo ufw allow from your_other_server_ip/32 to any port 27017

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

sudo ufw status

您应该在输出中看到允许到 27017 端口的流量。如果您决定只允许某个 IP 地址连接到 MongoDB 服务器,则将列出允许位置的 IP 地址而不是 Anywhere 在输出中。

输出

Status: active

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

UFW Essentials: Common Firewall Rules and Commands 中描述了用于限制对服务的访问的更高级的防火墙设置。

结论

您可以在 这些 DigitalOcean 社区文章 中找到有关 MongoDB 安装和配置的更深入说明。