如何在CentOS 7中安装MongoDB

介绍

MongoDB是一个面向文档的数据库,是免费和开源的。它被归类为NoSQL数据库,因为它不依赖于传统的基于表的关系数据库结构。相反,它使用类似JSON的文档和动态模式。与关系数据库不同,MongoDB在将数据添加到数据库之前不需要预定义模式。您可以随时根据需要更改模式,而无需使用更新的模式设置新的数据库。 本教程将指导您在CentOS 7服务器上安装MongoDB社区版。

先决条件

下面这个教程之前,请确保你有一个定期,非root用户 sudo权限。 您可以了解更多关于如何建立用户与这些特权从我们的向导, 如何创建在CentOS一个Sudo用户

第1步 - 添加MongoDB存储库

mongodb-org包不为CentOS默认的存储库中存在。但是,MongoDB维护一个专用的存储库。让我们将它添加到我们的服务器。 随着 vi编辑器创建 .repo文件 yum ,包管理实用程序为CentOS:
sudo vi /etc/yum.repos.d/mongodb-org.repo
然后,请访问 安装在Red Hat MongoDB的文档的部分,并添加了最新的稳定版本的文件存储库的信息:
/etc/yum.repos.d/mongodb-org.repo
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
保存并关闭文件。 在我们继续之前,我们应该确认的MongoDB库中的内部存在 yum工具。 该 repolist命令显示使信息库的列表:
yum repolist
Output. . .
repo id                          repo name
base/7/x86_64                    CentOS-7 - Base
extras/7/x86_64                  CentOS-7 - Extras
mongodb-org-3.2/7/x86_64         MongoDB Repository
updates/7/x86_64                 CentOS-7 - Updates
. . .
随着 MongoDB Repository的地方,让我们继续安装。

第2步 - 安装MongoDB

我们可以安装 mongodb-org使用的第三方库包 yum实用工具。
sudo yum install mongodb-org
有两个 Is this ok [y/N]:提示。 第一个允许安装MongoDB包,第二个导入GPG密钥。 MongoDB中的出版商签署其软件和 yum使用键确认下载的软件包的完整性。 在每个提示符下,键入 Y然后按 ENTER键。 接下来,开始用MongoDB的服务 systemctl实用程序:
sudo systemctl start mongod
虽然我们将不会在本教程中使用它们,您还可以更改与MongoDB的服务的状态 reloadstop命令。 在 reload命令请求 mongod过程中读取配置文件, /etc/mongod.conf ,并无需重启应用任何更改。
sudo systemctl reload mongod
stop命令停止所有正在运行 mongod进程。
sudo systemctl stop mongod
systemctl程序执行后没有提供结果 start命令,但我们可以检查该服务启动通过查看年底 mongod.log与文件 tail命令:
sudo tail /var/log/mongodb/mongod.log
Output. . .
[initandlisten] waiting for connections on port 27017
等待一个连接的输出证实的MongoDB已成功启动,我们可以访问与Shell的MongoDB数据库服务器:
mongo
注意:当您启动了MongoDB的外壳,你可能已经看到一个警告是这样的: ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files. MongoDB是一个线程应用程序。它可以启动其他进程来处理其工作负载。警告指出,为了使MongoDB最有效,被授权启动的进程数量应该是在任何给定时间可以打开的文件数量的一半。要解决此警告,改变 processes软RLIMIT值 mongod通过编辑 20-nproc.conf文件:
sudo vi /etc/security/limits.d/20-nproc.conf
将以下行添加到文件末尾:
/etc/security/limits.d/20-nproc.conf
. . .
mongod soft nproc 32000
对于要提供给MongoDB的新限制,使用重新启动它 systemctl实用程序:
sudo systemctl restart mongod
之后,当您连接到MongoDB Shell时,警告应该停止存在。 要了解如何使用MongoDB的从shell交互,可以查看输出 db.help()它提供对 数据库对象的方法列表方法。
db.help()
OutputDB 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命令:
exit
OutputBye

第3步 - 验证启动

由于数据库驱动的应用离不开数据库功能,我们将确保MongoDB的守护进程 mongod ,会随系统启动。 使用 systemctl实用程序来检查它的启动状态:
systemctl is-enabled mongod; echo $?
输出为0,确认一个启用的守护进程,我们想要。一个,但是,确认禁用的守护程序将无法启动。
Output. . .
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命令将数据插入到 测试数据库。 该 --db标志定义,而要使用哪个数据库 --collection标志指定的地方在数据库中的信息将被存储,以及 --file标志告诉在执行导入操作该文件的命令:
mongoimport --db test --collection restaurants --file /tmp/primer-dataset.json
输出证实从数据的导入 primer-dataset.json文件:
Outputconnected to: localhost
imported 25359 documents
使用示例数据集,我们将对其执行查询。 重新启动MongoDB Shell:
mongo
外壳选用 test默认情况下,这是我们进口我们的数据的数据库。 查询 餐馆收集的 find()方法来显示数据集中的所有restuarants的列表。 由于集合包含超过25,000项,请使用可选的 limit()方法来查询的输出减少到指定号码。 此外, pretty()方法使信息更加可读用换行和缩进。
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()方法:
db.restaurants.drop()
最后,退出与外壳 exit命令:
exit
OutputBye

结论

在本教程中,我们讨论了增加一个第三方存储库 yum ,安装的MongoDB数据库服务器,导入样本数据集,并执行一个简单的查询。 我们几乎没有抓住MongoDB功能的表面。 您可以使用多个 集合创建自己的数据库,有许多 文件填充它们,并开始建立一个强大的应用程序。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏