如何在 CentOS 7 上安装 MongoDB如何在 CentOS 7 上安装 MongoDB如何在 CentOS 7 上安装 MongoDB如何在 CentOS 7 上安装 MongoDB
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 CentOS 7 上安装 MongoDB

介绍

MongoDB 是一个面向文档的免费开源数据库。它被归类为 NoSQL 数据库,因为它不依赖于传统的基于表的关系数据库结构。相反,它使用具有动态模式的类似 JSON 的文档。与关系数据库不同,MongoDB 在将数据添加到数据库之前不需要预定义的模式。您可以随时根据需要随时更改架构,而无需使用更新的架构设置新数据库。

在本教程中,您将在 CentOS 7 服务器上安装 MongoDB Community Edition。

先决条件

在学习本教程之前,请确保您已经

  • 一台 CentOS 7 服务器,有一个非根 sudo 启用的用户。如需指导,请参阅我们的教程,使用 CentOS 7 进行初始服务器设置。

第 1 步 – 添加 MongoDB 存储库

mongodb-org 软件包不存在于 CentOS 的默认存储库中。但是,MongoDB 维护着一个专门的存储库。让我们将它添加到我们的服务器。

使用 vi 编辑器,为 CentOS 的包管理实用程序 yum 创建一个 .repo 文件:

  1. sudo vi /etc/yum.repos.d/mongodb-org.repo

然后,访问 MongoDB 文档的在 Red Hat 上安装部分,并将最新稳定版本的存储库信息添加到文件中:

[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc

按 ESC 键保存对文件的更改,然后键入 :wq,然后按 ENTER。

在继续之前,您应该验证 MongoDB 存储库是否存在于 yum 实用程序中。 repolist 命令显示已启用存储库的列表:

  1. yum repolist
Output
. . . repo id repo name base/7/x86_64 CentOS-7 - Base extras/7/x86_64 CentOS-7 - Extras mongodb-org-6.0/7/x86_64 MongoDB Repository updates/7/x86_64 CentOS-7 - Updates . . .

MongoDB Repository 就位后,您可以继续安装。

第 2 步 – 安装 MongoDB

您可以使用 yum 实用程序从第三方存储库安装 mongodb-org 包。

  1. sudo yum install mongodb-org

有两个 Is this ok [y/N]: 提示。第一个允许安装 MongoDB 包,第二个导入 GPG 密钥。 MongoDB 的发布者签署他们的软件并且 yum 使用密钥来确认下载包的完整性。在每个提示符下,键入 Y,然后按 ENTER 键。

接下来,使用 systemctl 实用程序启动 MongoDB 服务:

  1. sudo systemctl start mongod

虽然我们不会在本教程中使用它们,但您也可以使用 reload 和 stop 命令更改 MongoDB 服务的状态。

reload 命令请求 mongod 进程读取配置文件 /etc/mongod.conf,并在不需要重新启动的情况下应用任何更改。

  1. sudo systemctl reload mongod

stop 命令停止所有正在运行的 mongod 进程。

  1. sudo systemctl stop mongod

systemctl 实用程序在执行 start 命令后没有提供结果,但您可以通过查看 mongod.log 的末尾来检查服务是否已启动 文件与 tail 命令:

  1. sudo tail /var/log/mongodb/mongod.log
Output
. . . [initandlisten] waiting for connections on port 27017

等待连接的输出确认 MongoDB 已成功启动,您可以使用 MongoDB Shell 访问数据库服务器:

  1. mongo

注意:启动 MongoDB Shell 时,您可能会看到如下警告:

<代码>** 警告:** 软限制太低。 rlimits 设置为 4096 个进程,64000 个文件。进程数应至少为 32000:文件数的 0.5 倍。

MongoDB 是一个线程应用程序。它可以启动其他进程来处理其工作负载。该警告指出,要使 MongoDB 最有效,它被授权启动的进程数应该是它在任何给定时间可以打开的文件数的一半。要解决该警告,请通过编辑 20-nproc.conf 文件更改 mongod 的 processes soft rlimit 值:

  1. sudo vi /etc/security/limits.d/20-nproc.conf

将以下行添加到文件末尾:

. . .
mongod soft nproc 32000

确保按 ESC 键保存更改,然后键入 :wq,然后按 ENTER。

要使新限制对 MongoDB 可用,请使用 systemctl 实用程序重新启动它:

  1. sudo systemctl restart mongod

之后,当您连接到 MongoDB Shell 时,警告应该不复存在。

要了解如何从 shell 与 MongoDB 交互,您可以查看 db.help() 方法的输出,该方法提供了 db 对象的方法列表。

  1. db.help()
Output
DB methods: db.adminCommand(nameOrDocument) - switches to 'admin' db, and runs command [ just calls db.runCommand(...) ] db.auth(username, password) db.cloneDatabase(fromhost) db.commandHelp(name) returns the help for the command db.copyDatabase(fromdb, todb, fromhost) db.createCollection(name, { size : ..., capped : ..., max : ... } ) db.createUser(userDocument) db.currentOp() displays currently executing operations in the db db.dropDatabase() . . .

让 mongod 进程在后台运行,但使用 exit 命令退出 shell:

  1. exit
Output
Bye

第 3 步 – 验证启动

由于数据库驱动的应用程序没有数据库就无法运行,因此我们将确保 MongoDB 守护进程 mongod 将随系统一起启动。

使用 systemctl 实用程序检查其启动状态:

  1. systemctl is-enabled mongod; echo $?

零输出确认启用的守护进程,这是我们想要的。然而,一个确认禁用的守护进程将不会启动。

Output
. . . enabled 0

如果守护程序被禁用,请使用 systemctl 实用程序启用它:

  1. sudo systemctl enable mongod

您现在有一个正在运行的 MongoDB 实例,它将在系统重启后自动启动。

第 4 步——导入示例数据集(可选)

与其他数据库服务器不同,MongoDB 的test 数据库中没有数据。由于我们不想使用生产数据来试验新软件,我们将从 MongoDB 示例下载示例数据集。这个 JSON 文档包含一个餐厅集合,我们将使用它来练习与 MongoDB 的交互并避免对敏感数据造成伤害。

首先移动到一个可写目录:

  1. cd /tmp

使用 curl 命令和来自 MongoDB 的链接下载 JSON 文件:

  1. curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json

mongoimport 命令会将数据插入测试数据库。 --db 标志定义要使用的数据库,而 --collection 标志指定信息将存储在数据库中的位置,而 --file 标志告诉命令要对哪个文件执行导入操作:

  1. mongoimport --db test --collection restaurants --file /tmp/primer-dataset.json

输出确认从 primer-dataset.json 文件导入数据:

Output
connected to: localhost imported 25359 documents

有了示例数据集,您可以对其执行查询。

重新启动 MongoDB Shell:

  1. mongo

默认情况下,shell 选择 test 数据库,这是您导入数据的地方。

使用 find() 方法查询餐厅集合,以显示数据集中所有餐厅的列表。由于该集合包含超过 25,000 个条目,请使用可选的 limit() 方法将查询的输出减少到指定的数量。此外,pretty() 方法通过换行和缩进使信息更易于阅读。

  1. db.restaurants.find().limit(1).pretty()
Output
{ "_id" : ObjectId("57e0443b46af7966d1c8fa68"), "address" : { "building" : "1007", "coord" : [ -73.856077, 40.848447 ], "street" : "Morris Park Ave", "zipcode" : "10462" }, "borough" : "Bronx", "cuisine" : "Bakery", "grades" : [ { "date" : ISODate("2014-03-03T00:00:00Z"), "grade" : "A", "score" : 2 }, { "date" : ISODate("2013-09-11T00:00:00Z"), "grade" : "A", "score" : 6 }, { "date" : ISODate("2013-01-24T00:00:00Z"), "grade" : "A", "score" : 10 }, { "date" : ISODate("2011-11-23T00:00:00Z"), "grade" : "A", "score" : 9 }, { "date" : ISODate("2011-03-10T00:00:00Z"), "grade" : "B", "score" : 14 } ], "name" : "Morris Park Bake Shop", "restaurant_id" : "30075445" }

您可以继续使用示例数据集熟悉 MongoDB 或使用 db.restaurants.drop() 方法将其删除:

  1. db.restaurants.drop()

最后,使用 exit 命令退出 shell:

  1. exit
Output
Bye

结论

在本教程中,您向 yum 添加了一个第三方存储库,安装了 MongoDB 数据库服务器,导入了一个示例数据集,并执行了一个简单的查询。您还可以使用 MongoDB 做更多事情,例如使用 collections 创建数据库,用许多 documents 填充数据库,以及构建健壮的应用程序。要了解有关 MongoDB 的更多信息,请查看我们关于 MongoDB 的系列教程。

©2015-2025 艾丽卡 support@alaica.com