帮酷LOGO
0 0 评论
文章标签:Mongodb  mongo  Centos  Mongodb C  mongod  

介绍

MongoDB是一个面向文档的数据库,它免费开放源代码。因为它不依赖传统的基于表的关系数据库结构,所以,它被分类为NoSQL数据库。

本教程将指导你在CentOS 7服务器上安装MongoDB社区版。

前提条件

在本教程之后,确保你拥有一个有sudo权限的常规非root用户。

步骤1添加MongoDB存储库

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

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


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

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

/etc/yum.repos./mongodb组织

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

保存并关闭文件。

在继续之前,应该验证yum工具库中是否存在MongoDB存储库,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

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


sudo yum install mongodb-org

有两个 Is this ok [y/N]: 提示第一个允许安装MongoDB软件包,第二个则导入GPG密钥,MongoDB的发布者签署他们的软件,yum使用一个密钥来确认已下载包的完整性,在每个提示下,键入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


Output. . .
[initandlisten] waiting for connections on port 27017

输出确认MongoDB已成功启动,并且我们可以使用MongoDB shell访问数据库服务器:


mongo

注意:在启动MongoDB shell时,你可能看到了类似这样的警告:

** 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最有效的进程数量应该是,它可以在给定时间打开的文件数,若要解决警告,请通过编辑20-nproc.conf文件更改mongodprocesses软限制值:


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

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

etc security limits d20 nproc conf文件

. . .
mongod soft nproc 32000

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


sudo systemctl restart mongod

然后,当连接到MongoDB shell时,警告应该停止存在。

为了学习如何从shell与MongoDB交互,可以查看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命令退出shell :


exit


OutputBye

第3步验证启动

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


systemctl is-enabled mongod; echo $?


Output. . .
enabled
0

在禁用的守护进程中,使用systemctl实用程序启用它:


sudo systemctl enable mongod

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

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

其他数据库服务器不同,MongoDB在它的test数据库中没有数据,由于我们不希望使用生产数据试验新软件,所以,我们将从"mongodb入门"文档的"导入例子Dataset"部分下载一个例子数据集,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

默认情况下,shell选择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命令退出shell :


exit


OutputBye

结束语

在本教程中,我们介绍了向yum添加第三方存储库,安装MongoDB数据库服务器,导入例子数据集以及执行简单查询,我们几乎没有真正触及MongoDB的功能,你可以使用多个集合创建自己的数据库,填充一些文档,开始真正去构建一个健壮的应用程序。



文章标签:mongo  Mongodb  mongod  Centos  Mongodb C  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语