当前位置: 首页 > news >正文

在CentOS 7上安装MongoDB的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

简介

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

在本教程中,您将在 CentOS 7 服务器上安装 MongoDB 社区版。

先决条件

在按照本教程之前,请确保您拥有:

  • 一个具有非 root sudo 权限的 CentOS 7 服务器。有关指导,请参阅我们的教程《在 CentOS 7 上进行初始服务器设置》。

步骤 1 – 添加 MongoDB 仓库

mongodb-org 软件包在 CentOS 的默认仓库中不存在。但是,MongoDB 维护了一个专用的仓库。让我们将其添加到我们的服务器上。

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

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 命令显示已启用的仓库列表:

yum repolist
. . .
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 软件包。

sudo yum install mongodb-org

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

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

sudo systemctl start mongod

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

reload 命令请求 mongod 进程读取配置文件 /etc/mongod.conf,并应用任何更改,而无需重新启动。

sudo systemctl reload mongod

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

sudo systemctl stop mongod

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

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

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

mongo

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

db.help()
DB methods:db.adminCommand(nameOrDocument) - 切换到 'admin' 数据库,并运行命令 [ 仅调用 db.runCommand(...) ]db.auth(username, password)db.cloneDatabase(fromhost)db.commandHelp(name) 返回命令的帮助db.copyDatabase(fromdb, todb, fromhost)db.createCollection(name, { size : ..., capped : ..., max : ... } )db.createUser(userDocument)db.currentOp() 显示数据库中当前正在执行的操作db.dropDatabase()
. . .

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

exit
Bye

步骤 3 – 验证启动

由于一个依赖数据库的应用程序在没有数据库的情况下无法正常运行,我们将确保 MongoDB 守护程序 mongod 会随系统启动而启动。

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

systemctl is-enabled mongod; echo $?

输出为零表示已启用守护程序,这是我们想要的。而输出为一则表示守护程序被禁用,将不会启动。

. . .
enabled
0

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

sudo systemctl enable mongod

现在你已经有一个运行中的 MongoDB 实例,它将在系统重新启动后自动启动。

步骤 4 – 导入示例数据集(可选)

与其他数据库服务器不同,MongoDB 不会在其 test 数据库中提供数据。由于我们不希望使用生产数据来尝试新软件,我们将从 MongoDB 示例中下载一个样本数据集。这个 JSON 文档包含了一组餐馆数据,我们将用它来练习与 MongoDB 的交互,并避免对敏感数据造成伤害。

首先进入一个可写目录:

cd /tmp

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

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

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

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

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

connected to: localhost
imported 25359 documents

有了样本数据集,你可以对其执行查询。

重新启动 MongoDB Shell:

mongo

Shell 默认选择 test 数据库,这就是你导入数据的地方。

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

db.restaurants.find().limit(1).pretty()
{"_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() 方法删除它:

db.restaurants.drop()

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

exit
Bye

结论

在本教程中,你向 yum 添加了一个第三方存储库,安装了 MongoDB 数据库服务器,导入了一个样本数据集,并执行了一个简单的查询。MongoDB 还有很多其他用途,比如创建带有 collections 的数据库,填充数据库的许多 documents,以及构建强大的应用程序。要了解更多关于 MongoDB 的信息,请查看我们的系列教程《如何使用 MongoDB 管理数据库》或者我们的其他 MongoDB 教程。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ROS imu传感器节点
  • 书生大模型实战营-进阶关卡-6-MindSearch 快速部署
  • 力扣8.27
  • 阿里云对象存储服务(Aliyun OSS):企业级云存储解决方案
  • Spring Boot 集成 JdbcTemplate(盘它!)
  • 敏捷架构开发方法和实践:迎接数字化时代的挑战
  • 东芝玉兔2.0明日震撼开售,洗衣机界的全新革命
  • 本地化云桌面系统环境VMware horizon搭建
  • Golang反射:运行时类型检查与操作
  • 虚幻5|制作玩家血量,体力(还未编辑,只用于引用)
  • Ubuntu 24.04 安装 intel 编译器
  • Android --- transaction.commitAllowingStateLoss();和transcation.commit 有什么区别
  • 轻量级自动化测试框架WebZ
  • 零基础国产GD32单片机编程入门(五)OLED显示及实战含源码
  • Spring MVC常用注解及用法
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • Android交互
  • Create React App 使用
  •  D - 粉碎叛乱F - 其他起义
  • Django 博客开发教程 16 - 统计文章阅读量
  • django开发-定时任务的使用
  • Hibernate最全面试题
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • JAVA_NIO系列——Channel和Buffer详解
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaScript实现分页效果
  • java概述
  • js 实现textarea输入字数提示
  • rc-form之最单纯情况
  • Unix命令
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 阿里云购买磁盘后挂载
  • 猴子数据域名防封接口降低小说被封的风险
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 检测对象或数组
  • 讲清楚之javascript作用域
  • 解析 Webpack中import、require、按需加载的执行过程
  • 前端临床手札——文件上传
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 收藏好这篇,别再只说“数据劫持”了
  • 提醒我喝水chrome插件开发指南
  • 学习JavaScript数据结构与算法 — 树
  • 用mpvue开发微信小程序
  • 云大使推广中的常见热门问题
  • 在Mac OS X上安装 Ruby运行环境
  • 转载:[译] 内容加速黑科技趣谈
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​iOS安全加固方法及实现
  • # Apache SeaTunnel 究竟是什么?
  • #07【面试问题整理】嵌入式软件工程师
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (1)Nginx简介和安装教程
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)