如何在Ubuntu 20.04上安装MongoDB

 

介绍

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

相反,它使用具有动态模式的类JSON文档,这意味着与关系数据库不同,在将数据添加到数据库之前,MongoDB不需要预定义的模式。您可以随时根据需要更改架构,而不必使用更新的架构设置新数据库。

在本教程中,您将在Ubuntu 20.04服务器上安装MongoDB,对其进行测试,并学习如何将其作为systemd服务进行管理。

先决条件

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

第1步-安装MongoDB

Ubuntu的官方软件包存储库包括一个稳定的MongoDB版本。但是,在撰写本文时,默认Ubuntu存储库中可用的MongoDB版本为3.6,而最新的稳定版本是 4.4

要获取该软件的最新版本,您必须在APT来源中包含MongoDB的专用软件包存储库。然后,您将能够安装mongodb-org,该包始终指向最新版本的MongoDB。

首先,导入用于最新稳定版本MongoDB的公共GPG密钥。您可以通过导航到MongoDB密钥服务器并找到包含最新的稳定版本号并以结尾的文件来找到合适的密钥文件.asc。例如,如果要安装MongoDB的版本4.4,则将查找名为server-4.4.asc的文件。

右键点击文件,然后选择复制链接地址。然后,将该链接粘贴到以下curl命令中,替换突出显示的URL:

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

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

另外,请注意,此curl命令使用的选项-fsSL实际上共同告诉cURL静默失败。这意味着,如果由于某种原因cURL无法联系GPG服务器或GPG服务器已关闭,则不会将结果错误代码意外添加到您的受信任密钥列表中。

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

 
Output

OK

如果您想再次检查是否正确添加了密钥,可以使用以下命令进行:

 
  • apt-key list

这将在输出中的某处返回MongoDB键:

 
Output

/etc/apt/trusted.gpg -------------------- pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26] 2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5 uid [ unknown] MongoDB 4.4 Release Signing Key <packaging@mongodb.com> . . .

此时,您的APT安装仍然不知道在哪里可以找到mongodb-org安装最新版本的MongoDB所需的软件包。

APT在服务器上的两个位置上查找要下载和安装的软件包的联机源:sources.list文件和sources.list.d目录。 sources.list是一个文件,其中列出了APT数据的活动来源,每行一个来源,最优先的来源列在最前面。该sources.list.d目录允许您将这样的sources.list条目添加为单独的文件。

运行以下命令,这将在sources.list.d名为的目录中创建一个文件mongodb-org-4.4.list。该文件中唯一的内容是单行读取deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse

 
  • echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/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://repo.mongodb.org/apt/ubuntu:这是一个URI,代表可以在其中找到APT数据的位置。在这种情况下,URI指向官方MongoDB存储库所在的HTTPS地址。
  • focal/mongodb-org/4.4:Ubuntu存储库可以包含几个不同的发行版。这指明您只需要版本4.4的的mongodb-org包可用于focalUbuntu的释放(“焦点窝”是的Ubuntu 20.04的代号)。
  • multiverse:这部分将APT指向四个主要的Ubuntu存储库之一。在这种情况下,它指向multiverse存储库

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

 
  • sudo apt update

之后,您可以安装MongoDB:

 
  • sudo apt install mongodb-org

出现提示时,按Y,然后ENTER确认要安装该软件包。

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

第2步-启动MongoDB服务并测试数据库

上一步中描述的安装过程会自动将MongoDB配置为由所控制的守护程序运行systemd,这意味着您可以使用各种systemctl命令来管理MongoDB 。但是,此安装过程不会自动启动服务。

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

 
  • sudo systemctl start mongod.service

然后检查服务的状态。请注意,此命令不包括.service在服务文件定义中。 systemctl会将此后缀附加到您自动传递的任何参数(如果尚不存在的话),因此不必将其包括在内:

 
  • sudo systemctl status mongod

该命令将返回如下所示的输出,指示服务已启动并正在运行:

 
Output

● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2020-06-09 12:57:06 UTC; 2s ago Docs: https://docs.mongodb.org/manual Main PID: 37128 (mongod) Memory: 64.8M CGroup: /system.slice/mongod.service └─37128 /usr/bin/mongod --config /etc/mongod.conf

确认服务正在按预期运行后,启用MongoDB服务以在启动时启动:

 
  • sudo systemctl enable mongod

您可以通过连接到数据库服务器并执行诊断命令来进一步验证数据库是否可运行。以下命令将连接到数据库并输出其当前版本,服务器地址和端口。它还将返回MongoDB内部connectionStatus命令的结果:

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

connectionStatus将检查并返回数据库连接的状态。响应中1ok字段值为表示服务器正在按预期方式工作:

 
Output

MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("1dc7d67a-0af5-4394-b9c4-8a6db3ff7e64") } MongoDB server version: 4.4.0 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

另外,请注意,数据库正在端口27017on上运行127.0.0.1,本地回送地址表示localhost。这是MongoDB的默认端口号。

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

第3步-管理MongoDB服务

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

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

 
  • sudo systemctl status mongod

您可以随时输入以下命令停止服务:

 
  • sudo systemctl stop mongod

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

 
  • sudo systemctl start mongod

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

 
  • sudo systemctl restart mongod

在步骤2中,您使MongoDB能够从服务器自动启动。如果您希望禁用此自动启动,请键入:

 
  • sudo systemctl disable mongod

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

 
  • sudo systemctl enable mongod

有关如何管理systemd服务的更多信息,请查看Systemd Essentials:使用服务,单位和日志

结论

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

下一步,我们强烈建议您遵循有关如何在Ubuntu 20.04上保护MongoDB的指南来加强MongoDB安装的安全性。一旦安全,就可以将MongoDB配置为接受远程连接

这些DigitalOcean社区文章中,您可以找到有关如何配置和使用MongoDB的更多教程。我们也鼓励您查看MongoDB的官方文档,因为它是有关MongoDB提供的可能性的重要资源。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值