目录
- 简介
- 先决条件
- 步骤 1 – 添加 MongoDB 仓库
- 步骤 2 – 安装 MongoDB
- 步骤 3 – 验证启动
- 步骤 4 – 导入示例数据集(可选)
- 结论
简介
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
虽然在本教程中我们不会使用它们,但您也可以使用 reload
和 stop
命令更改 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 教程。
到此这篇关于在CentOS 7上安装MongoDB数据库的文章就介绍到这了,更多相关CentOS 7安装MongoDB内容请搜索编程网(www.lsjlt.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.lsjlt.com)!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- Java中如何正确使用 collections.shuffle 方法?(Java中collections.shuffle怎么使用)
- Java Swing 中常用的布局有哪些?(java swing常用布局有哪些)
- 如何通过 Java Reflection 获取泛型信息?(java reflection如何获取泛型信息)
- 如何自定义 Java 泛型通配符?(java泛型通配符怎么自定义)
- Java Spring 注解与 XML 配置的差异究竟有哪些?(java spring注解与XML配置的区别是什么)
- Java 动态线程池对性能究竟有哪些影响呢?(Java动态线程池对性能的影响)
- 在 Java 中,Guava 究竟有哪些作用呢?(java中guava的作用是什么)
- 软考高项证书能个税抵扣吗?软考高项证书个税啥时候填报?
- 在 JavaScript 中,offsetWidth 的作用究竟是什么?(javascript中offsetwidth作用是什么)
- 软考高项证书个税抵扣有用吗?软考高项证书怎么抵扣个税?