如何在 Ubuntu 16.04 上安装 MongoDB
介绍
MongoDB 是现代 Web 应用程序中常用的免费开源 NoSQL 文档数据库。本教程将帮助您在服务器上为生产应用程序环境设置 MongoDB。
先决条件
要学习本教程,您需要:
- 按照此初始服务器设置教程设置一台 Ubuntu 16.04 服务器,包括 sudo 非根用户和防火墙。
第 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 mongod
、sudo systemctl start mongod
)。
第 3 步 — 调整防火墙(可选)
假设您已按照初始服务器设置教程说明在服务器上启用防火墙,MongoDB 服务器将无法从 Internet 访问。
如果您打算仅在本地将 MongoDB 服务器与在同一服务器上运行的应用程序一起使用,这是推荐的安全设置。但是,如果您希望能够从互联网连接到您的 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 地址而不是 输出中的任何地方。
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 安装和配置的更深入的说明。