如何在 Ubuntu 18.04 上安装 MongoDB

此教程的早期版本是由Melissa Anderson撰写的(https://www.digitalocean.com/community/users/melissaanderson)。

介绍

MongoDB,也称为 Mongo,是一个开源文档数据库,用于许多现代Web应用程序,它被归类为 NoSQL数据库,因为它不依赖传统的基于表的关系数据库结构。

相反,它使用具有动态方案的JSON类文档,这意味着与关系数据库不同,MongoDB在将数据添加到数据库之前不需要预定义方案。

在本教程中,您将安装MongoDB在Ubuntu 18.04服务器上,测试它,并学习如何作为一个systemd服务来管理它。

前提条件

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

步骤1:安装 MongoDB

Ubuntu 的官方包存包括一个稳定版本的 MongoDB. 然而,截至本文,从默认 Ubuntu 存储库中可用的 MongoDB 版本为 3.6,而最新的稳定版本为 4.4.

要获得该软件的最新版本,您必须将MongoDB的专用包存储库添加到您的APT源中,然后,您将能够安装mongodb-org,该元包总是指向MongoDB的最新版本。

要开始,请通过运行以下命令导入 MongoDB 最新稳定版本的公共 GPG 密钥. 如果您打算使用 MongoDB 版本以外的 4.4,请确保在该命令的 URL 部分中更改 `4.4’ 以与您要安装的版本匹配:

1curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

cURL 是许多用于传输数据的操作系统上可用的命令行工具,它会读取存储的任何数据,并将内容打印到系统输出中,在下面的示例中,cURL 会打印 GPG 密钥文件的内容,然后将其输入到以下sudo apt-key add - 命令中,从而将 GPG 密钥添加到您的信任密钥列表中。

另外,请注意,这个弯曲命令使用了fsSL选项,这些选项基本上会告诉cURL默默失败,这意味着如果cURL因某种原因无法与GPG服务器联系,或者GPG服务器处于停机状态,它不会意外地将结果的错误代码添加到您的信任密钥列表中。

此命令将返回OK,如果已成功添加密钥:

1[secondary_label Output]
2OK

如果您想重复检查密钥是否正确添加,则可以使用以下命令:

1apt-key list

这将返回 MongoDB 密钥在输出中的某个地方:

1[secondary_label Output]
2/etc/apt/trusted.gpg
3--------------------
4pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26]
5      2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5
6uid           [ unknown] MongoDB 4.4 Release Signing Key <[email protected]>
7. . .

此时,您的 APT 安装程序仍然不知道在哪里找到您需要安装最新版本的 MongoDB 的「mongodb-org」包。

您的服务器上有两个地方,APT 寻找可下载和安装的在线包源:sources.list.d目录和sources.list.d目录。

執行以下命令,在「sources.list.d」目錄中創建一個名為「mongodb-org-4.4.list」的檔案. 該檔案中唯一的內容是單行閱讀 deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse:

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

这个单行告诉APT需要知道源是什么以及在哪里找到它的一切:

  • deb:这意味着源输入引用了正常的 Debian 架构。在其他情况下,这个行部分可能读到 deb-src,这意味着源输入代表了 Debian 发行版的源代码。
  • [ arch=amd64,arm64 ]:这说明了 APT 数据应该下载到哪个架构。在这种情况下,它指定了 amd64arm64 架构的 HTTPS 地址。
  • https://repo.mongodb.org/aptubuntu:这是一个代表 APT 数据可找到位置的 URI。在这种情况下,URI 指向官方 MongoDB 存储所在的 HTTPS 地址。
  • `bionic/mod

运行此命令后,更新您的服务器的本地包索引,以便APT知道在哪里找到mongodb-org包:

1sudo apt update

接下来,您可以安装 MongoDB:

1sudo apt install mongodb-org

当被提示时,按Y,然后按ENTER,确认您想要安装该软件包。

当命令完成时,MongoDB 将安装在您的系统上. 但是它尚未准备好使用. 接下来,您将启动MongoDB 并确认它正在正常工作。

步骤 2 – 启动 MongoDB 服务并测试数据库

在上一步中描述的安装过程会自动配置 MongoDB 以由 systemd 控制的 DAEMON 运行,这意味着您可以使用各种 systemctl 命令来管理 MongoDB。

运行以下systemctl命令来启动 MongoDB 服务:

1sudo systemctl start mongod.service

请注意,此命令不会在服务文件定义中包含.servicesystemctl将附加此顺序到您自动传输的任何参数中,如果它尚未存在,所以不需要包括它:

1sudo systemctl status mongod

此命令将返回如下输出,表示服务已启动并运行:

1[secondary_label Output]
2 mongod.service - MongoDB Database Server
3   Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
4   Active: active (running) since Tue 2020-10-06 15:08:09 UTC; 6s ago
5     Docs: https://docs.mongodb.org/manual
6 Main PID: 13429 (mongod)
7   CGroup: /system.slice/mongod.service
8           └─13429 /usr/bin/mongod --config /etc/mongod.conf

确认服务按预期运行后,允许 MongoDB 服务在启动时启动:

1sudo systemctl enable mongod

您可以通过连接到数据库服务器并执行诊断命令进一步验证数据库是否正常运行。下列命令将连接到数据库并输出其当前版本、服务器地址和端口。

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

「connectionStatus」会检查并返回数据库连接的状态.响应中的「OK」字段的值为「1」表示服务器按预期运行:

 1[secondary_label Output]
 2MongoDB shell version v4.4.1
 3connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
 4Implicit session: session { "id" : UUID("2244c4df-38a3-4109-9fd2-68948865647a") }
 5MongoDB server version: 4.4.1
 6{
 7    "authInfo" : {
 8    	"authenticatedUsers" : [ ],
 9    	"authenticatedUserRoles" : [ ]
10    },
11    "ok" : 1
12}

另外,请注意,数据库运行在端口 27017127.0.0.1,即代表 localhost 的本地回路地址。

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

第3步:管理MongoDB服务

如前所述,在步骤 1 中描述的安装过程将 MongoDB 配置为systemd服务,这意味着您可以使用标准的systemctl命令来管理它,就像其他 Ubuntu 系统服务一样。

如前所述,systemctl status命令检查了MongoDB服务的状态:

1sudo systemctl status mongod

您可以随时停止服务,键入:

1sudo systemctl stop mongod

要在停止服务时启动服务,运行:

1sudo systemctl start mongod

您也可以在已经运行时重新启动服务器:

1sudo systemctl restart mongod

在步骤 2 中,您已启用 MongoDB 自动启动服务器. 如果您有时想要禁用此自动启动,请键入:

1sudo systemctl disable mongod

然后,要重新启用它在启动时启动,请再次运行启用命令:

1sudo systemctl enable mongod

有关如何管理systemd服务的更多信息,请参阅 Systemd Essentials: Working with Services, Units, and the Journal

结论

在本教程中,您将官方的 MongoDB 存储库添加到您的 APT 实例中,并安装了 MongoDB 的最新版本,然后测试了 Mongo 的功能,并练习了一些systemctl命令。

作为下一步的立即步骤,我们强烈建议您通过遵循我们在 Ubuntu 18.04 上如何保护 MongoDB 的指南来加强 MongoDB 安装的安全性(https://andsky.com/tech/tutorials/how-to-secure-mongodb-on-ubuntu-18-04)。

您可以在 这些 DigitalOcean 社区文章中找到有关如何配置和使用 MongoDB 的更多教程)。

Published At
Categories with 技术
comments powered by Disqus