在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 教程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/52714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++_CH13_面向对象编程

C_CH13_面向对象编程 1.1 类 类&#xff08;class&#xff09;是数据和操作的组合。 我们以游戏角色为例&#xff0c;创建一个类 #include<iostream>class player//player这个类是我们自定义的一个类型 {int x;int y;//二维坐标int speed;//速度int power;//力量};int…

重载与重写:Java中方法的多态性

重载与重写&#xff1a;Java中方法的多态性 引言 在Java编程语言中&#xff0c;多态性是一个核心概念&#xff0c;它允许我们以统一的方式处理不同类型的对象。Java提供了两种实现多态性的方法&#xff1a;重载&#xff08;Overloading&#xff09;和重写&#xff08;Overrid…

面试经典算法150题系列-反转字符串中的单词

反转字符串中的单词 给你一个字符串 s &#xff0c;请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意&#xff1a;输入字符串 s中可能…

react 中的useState useEffect

下面的这些hook我们常用的一些 useState useEffect useCallback、useMemo、useRef 和 useContex 下一个文章中讲述&#xff08;useCallback、useMemo、useRef 和 useContex&#xff09; 下面我将讲解什么时候使用是最好的 首先我们需要明确的一点是&#xff0c;这些hook都…

转-600条最强linux命令

一、基本命令 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息 arch 显示机器的处理器架构 uname -…

关于告警,要想做好,从这些方面着手

各类监控系统都会产生告警事件&#xff0c;于是&#xff0c;就产生了 FlashDuty、PagerDuty、Opsgenie 这类产品&#xff0c;做告警事件的收敛降噪、排班认领升级等。如果你想增强自己公司的告警事件处理能力&#xff0c;参考&#xff08;chao xi&#xff09;这些产品的功能就可…

使用统计方法在AMD GPU上使用JAX Profiler可靠地比较大型生成AI模型中的算法性能

Using statistical methods to reliably compare algorithm performance in large generative AI models with JAX Profiler on AMD GPUs — ROCm Blogs 摘要 本文提供了一份详细的指南&#xff0c;介绍如何在JAX实现的生成AI模型中测量和比较各种算法的性能。利用JAX Profiler…

35岁程序员的4条出路!请提早布局!

小编准备入门了Python入门学习籽料80个Python爬虫实战入门实例 点击 领取&#xff08;无偿获得&#xff09; 20多岁&#xff0c;初入职场&#xff0c;满腔热血&#xff0c;对未来充满憧憬&#xff1b; 30多岁&#xff0c;家庭事业双重压力&#xff0c;开始迷茫&#xff0c;对…

阿里云发送短信功能(Java)

&#xff08;1&#xff09;注册用户&#xff0c;并且开通短信套餐 &#xff08;2&#xff09; 点击快速学习&#xff0c;然后绑定测试的手机号码。 选用专用测试签名&#xff08;自定义的话阿里可能会验证什么什么的比较麻烦&#xff09; 然后在选取调用API &#xff08;3&…

10、Flink 动态表之表到流的转换详解

表到流的转换 动态表可以像普通数据库表一样通过 INSERT、UPDATE 和 DELETE 来不断修改,它可能是一个只有一行、不断更新的表,也可能是一个 insert-only 的表,没有 UPDATE 和 DELETE 修改,或者介于两者之间的其他表。 在将动态表转换为流或将其写入外部系统时,需要对这些…

3秒AI写真出图,Stable Diffusion2024升级版+使用教程来了!(无需安装,解压即用)

要说今年摄影圈最大的新秀 那妥妥的就Stable Diffusion 比如下面的写真照片 你敢信这是SD绘画生成的&#xff1f; 就在刚刚它又全面升级了 新版无需安装&#xff0c;直接解压就能用 比之前推送的更加智能、快速和简单 另外还特意为大家准备了 Stable Diffusion 人工智能…

故障诊断 | 基于小波时频图与Swin Transformer的轴承故障诊断方法(PyTorch)

文章目录 文章概述程序设计参考资料文章概述 基于小波时频图与Swin Transformer的轴承故障诊断方法 针对用传统的故障诊断方法难以对非线性非平稳的柴油机故障信号进行准确高效诊断的问题, 提出基于小波时频图与Swin Transformer的故障诊断方法。该方法可以有效结合小波时频分…

Git实战精粹

一、快速入门 1. 什么是Git Git是一个分布式的版本控制软件。 软件&#xff0c;类似于QQ、office、dota等安装到电脑上才能使用的工具版本控制&#xff0c;类似于毕业论文、写文案、视频剪辑等&#xff0c;需要反复修改和保留原历史数据分布式 文件夹拷贝本地版本控制集中式…

03-Python的运行方式

《Python 教程》总结 持续更新中&#xff0c;学习交流请加作者微信: python-baby 脚本和模块 脚本&#xff08;Scripts&#xff09; 在计算机术语中&#xff0c;脚本是指一个包含逻辑顺序的文本文件&#xff0c;我们可以运行脚本来完成特定任务。这些逻辑顺序通常用脚本语言…

如何在Java中使用protobuf

写在前面 本文看下在Java中如何使用protofbuf。 1&#xff1a;介绍 1.1&#xff1a;什么是protobuf 是一种数据格式&#xff0c;同json&#xff0c;xml&#xff0c;等。但是一种二进制数据格式。 1.2&#xff1a;强在哪里&#xff1f;为啥要用&#xff1f; 小&#xff0c…

org.apache.commons.lang.math.NumberUtils#isNumber 解释

源码 /*** <p>Checks whether the String a valid Java number.</p>** <p>Valid numbers include hexadecimal marked with the <code>0x</code>* qualifier, scientific notation and numbers marked with a type* qualifier (e.g. 123L).</…

JS中this的指向问题、JS的执行机制、offset、client、scroll

JS中this的指向问题 1. 在全局环境下 在全局环境中&#xff08;在浏览器中是 window 对象&#xff0c;在Node.js中是 global 对象&#xff09;&#xff0c;this 指向全局对象。 console.log(this window); // 在浏览器中为 true console.log(this.document ! undefined); //…

如何练高音技巧

如何练高音技巧 高音的练习技巧有&#xff1a;练“a”(啊)音&#xff0c;让口腔打开&#xff0c;声带放松&#xff0c;反复几次&#xff1b;再练“u”(呜)音&#xff0c;这个音可以有按摩声带的功能&#xff0c;也使声带进一步放松&#xff1b;发“i”(衣)音&#xff0c;逐步加…

缓存失效问题-雪崩/击穿/穿透

1. 缓存雪崩 1.1. 定义 大量缓存同一时间失效&#xff0c;大量访问数据库。 1.2. 发生条件 大量key相同过期时间缓存服务器重启 1.3. 解决方案 设置随机的缓存过期时间缓存预热高可用缓存集群降级限流 2. 缓存击穿 2.1. 定义 一个热点数据在缓存里失效&#xff0c;很多…

k8s 四种Service类型(ClusterIP、NodePort、LoadBalancer、ExternalName)详解

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Kubernetes航线图&#xff1a;从船长到K8s掌舵者》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、k8s概述 2、Service在Kubernetes中的…