文档章节

MongoDB 安装篇

STINGWOH
 STINGWOH
发布于 2017/07/27 15:58
字数 2448
阅读 13
收藏 0

 

1.MongoDB简单说明

  a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案。
  b MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系型数据库的。它支持的数据结构非常松散,会将数据存储为一个文档,数据结构由键值对(key=>value)组成,是类似于json的bson格式,字段值可以包含其它文档、数组和文档数组,因此可以存储比较复杂的数据类型。
  c MongoDB最大的特点就是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系型数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
  d MongoDB的主要特点(来自于网上,主要为了我们初步了解)
    d.1 MongoDB提供了一个面向文档存储,操作起来比较简单和容易的非关系型数据库。
    d.2 你可以在MongoDB记录中设置任何属性的索引来实现更快的排序。
    d.3 你可以通过本地u或者网络创建数据镜像,这使得MongoDB含有更强的扩展性。
    d.4 如果负载的增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其它节点上,这就是所谓的分片。
    d.5 MongoDB支持丰富的查询表达式,查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象和数组。        d.6 MongoDB使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段。        d.7 MongoDB中的Map/Reduce主要是用来对数据进行批量处理和聚合操作,Map函数调用emit(key,value)遍历集合中所有的记录,将key于value传递给Reduce函数进行处理。另外Map函数和Reduce函数是使用JavaScript编写的,所以可以通过db.runCommand和mapreduce命令来执行MapReduce操作。        d.8 GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
    d.9 MongoDB允许在服务端执行脚本,可以用JavaScript编写某个函数,直接在服务端执行,也可以吧函数的定义存储在服务端,下次直接调用即可。
    d.10  MongoDB支持各种编程语言:RUBY、PYTHON、JAVA、C++、PHP、C#等多种语言并且MongoDB的安装也非常简单。
  e 因为想将日志管理集中到MongoDB,所以简单学习了一下,将学习的心得分享给大家。
  f MongoDB官网:http://www.mongodb.org/
  g MongoDB学习网站:http://www.runoob.com/mongodb

2.准备工作

  a 通过上面简单的介绍之后我们已经了解了MongoDB的基本信息,那么接下来我们首先需要在Linux下搭建它并且来使用它。
  b MongoDB包下载地址:http://www.mongodb.org/downloads
  c 操作需要的软件以及系统如下:虚拟机(Vmware),虚拟机中安装的Centos系统,Xshell,Xftp, MongoDB包。

3.MongoDB安装

  a 通过上面简单的准备工作之后,我们已经拥有了可以安装的包和发布的环境,如果上面没有准备充分,请自行准备,下面我们开始进行搭建环境
  b 使用XShell连接Centos,连接成功后使用命令跳转到local下面创建自己的文件夹kencery,在此文件夹下面创建mongoDB文件夹,命令如下:
    b.1  (1):cd usr/local/    (2):mkdir kencery    (3):cd kencery/   (4):mkdir mongoDB(5):cd mongoDB/
  c 然后使用Xftp将在上面下载的mongoDB包(mongodb-linux-x86_64-3.2.8.tgz)复制到mongoDB文件夹里面,并且将包解压,解压之后命名为mongoDB,如图所示:
    c.1 tar -zxvf mongodb-linux-x86_64-3.2.8.tgz 
    c.2 mv mongodb-linux-x86_64-3.2.8 mongodb
    
  d 解压之后跳转到mongodb下进行操作(cd mongodb/),如图所示:
    
  e 如上图所示,您发现多了两个文件夹,一个是db,一个是logs,这两个文件夹是我们自己创建的,db文件夹的作用是存放数据库目录,logs文件夹的作用是存放mongoDB的操作日志信息,命令如下(此命令的执行在软件包解压重命名之后跳转到mongdb下面的执行):
    e.1 mkdir db
    e.3 mkdir logs
  f 添加完成之后,启动mongoDB,验证是否安装成功,这里指定的数据库目录选项为mongodb下创建的db,命令如下,如图所示,则提示启动成功。
    f.1 ./bin/mongod --dbpath /usr/local/kencery/mongoDB/mongodb/db
    f.2 当执行命令的时候如上图所示,我们发现出现了错误,错误信息是:(Failed to obtain address information for hostname bogon: Temporary failure in name resolution(获取不到地址对应的主机名)),这是因为mongoDB启动需要解析hosts,所以我们打开hosts给本地IP配置主机名bogon,命令如下:
      (1) vim /etc/hosts,打开编辑器之后,将(127.0.0.1   bogon)这段命令放置在编辑器最后,保存并且关闭
      (2) 重新启动mongoDB,发现错误已经消失,并且mogodb已经启动。
  g 验证mongoDB是否启动,输入命令lsof -i :27017,监测端口已经在使用中,所以说启动已经完成。

回到顶部

4.MongoDB配置

  a 通过上面的MongoDB安装,我们已经将其安装成功并且启动,但是发现启动太过于麻烦,所以需要我们自己给MongoDB配置配置文件,因MongoDB开发者没有配置样例,所以需要我们自己去创建并且写入内容
  b 首先我们在mongoDB解压之后的包里面进行操作,执行以下命令,打开编辑器。
    b.1 vim bin/mongodb.conf
  c 打开编辑器之后将如下图所示的内容写入到编辑器中,保证是正确的,如果你的安装地址和我的不一致,则需要自己修改路径,编辑完成之后保存。

port=27017 #服务端口号

dbpath=/usr/local/mongo/data #数据文件存放路径

logpath=/usr/local/mongo/logs/mongodb.log #日志输出文件路径

pidfilepath=/usr/local/mongo/mongo.pid #PID file的完整路径,如果没有设置,则没有PID文件

fork=true #设置后台运行

logappend=true #日志输出方式:追加的方式

#shardsvr=true  #声明这是一个集群的分片,默认端口27018

#directoryperdb=true #设置每个数据库将被保存在一个单独的目录

#auth=true  #开启认证

rest=true #开启简单的Rest API ,设置后打开28017网页端口

#nohttpinterface=true #关闭http接口,默认关闭27018端口访问
  d MongDB请命令参数说明:http://blog.csdn.net/fdipzone/article/details/7442162
  e 使用如下命令重新启动mongoDB,看是否配置文件起作用,命令如下
    e.1 ./bin/mongod --config /usr/local/kencery/mongoDB/mongodb/bin/mongodb.conf 
    
  f 验证mongoDB是否启动,输入命令lsof -i :27017,监测端口已经在使用中,所以说启动已经完成。

 

5.MongoDB设置为系统服务并且设置开机启动

  a 通过上面简单的操作,我们已经将MongoDB配置文件配置完成,那么接下里我们将为MongoDB设置系统服务。
  b.首先添加MongoDB系统服务,命令如下:vim /etc/rc.d/init.d/mongod
  c 打开编辑器后,我们将下面的配置粘贴进去,然后保存
      mit -SHn 655350
        #!/bin/sh
        # chkconfig: - 64 36
        # description:mongod
        case $1 in
        start)
        /usr/local/mongo/bin/mongod  --maxConns 20000  --config /usr/local/mongo/bin/mongodb.conf
        ;;

        stop)
        /usr/local/mongo/bin/mongo 127.0.0.1:27017/admin --eval "db.shutdownServer()"
        ;;

        status)
        /usr/local/mongo/bin/mongo 127.0.0.1:27017/admin --eval "db.stats()"
        ;;
        esac
  d 保存完成之后,添加脚本执行权限,命令如下:chmod +x /etc/rc.d/init.d/mongod 
  e 启动MongoDB,如下图所示,则说明启动成功
    
  f 可以使用命令service mongod stop关闭MongoDB服务。
  g 将此服务设置为开机启动,命令如下:chkconfig mongod on,然后重新启动机器进行测试,发现开机服务应启动并且端口也在使用中。
  h 验证mongoDB是否启动,输入命令lsof -i :27017,监测端口已经在使用中,所以说启动已经完成。

6.MongoDB设置远程服务(建议只在内网或者不可设置,不安全系数太高)

  a 如果你的MongoDB运行端口使用默认的27017,你可以使用端口号为28017来访问用户界面,这是因为MongoDB的Web界面访问端口比服务的端口多1000
  b 设置远程访问,既开放端口27017,28017
  c 首先编辑iptables文件,打开编辑器,命令如下( vim /etc/sysconfig/iptables),输入如下信息在编辑器的最后,最后保存。
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 27017  -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 28017 -j ACCEPT
  d 重启防火墙服务,命令如下: service iptables restart
  e.最后通过浏览器访问MongDB的web页面,如图所示:则说明配置已经成功。
  
  f.因为通过远程服务访问不安全,所以我们正常是不需要配置这步的,但是如果配置了之后,我们可以通过配置文件的属性阻止其外部访问
    f.1 打开mongodb.config文件,将#rest=true属性注释之后,关闭保存。
    f.2 关闭并且重启mongoDB,然后在外面使用浏览器访问发现已经访问不了。

转载自:http://www.cnblogs.com/hanyinglong/archive/2016/07/21/5690611.html

本文转载自:

共有 人打赏支持
STINGWOH
粉丝 2
博文 49
码字总数 11745
作品 0
苏州
Mongodb学习(安装篇): 在centos下的安装

下载解压文件 解压文件 查看解压文件 将/lamp/mongodb-linux-i686-2.2.2/bin目录拷贝到/usr/local/mongodb下 创建数据存放和日志文件: 启动进程(以后台Daemon形式运行服务) 查看mongod进程 ...

tw5566
2013/01/19
0
0
Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一)

Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图。那么如何在Asp.Net Core Web Api实现图片上传存...

依乐祝
07/11
0
0
PHP与MongoDB:类库、框架与工具介绍

本文来自MongoDB官方,文中把PHP与MongoDB相关的类库、框架、工具做了汇总和介绍,如果你正使用PHP并在关注MongoDB,那么这篇文章可能对你有用。 架构相关 CakePHP CakePHP是一个非常受欢迎的...

kisshua
2012/08/31
0
0
如何安全地配置一个生产环境的MongoDB服务器?

如何安全地配置一个生产环境MongoDB服务器? 安全配置一个生产环境MongoDB服务器 如果MongoDB是一个为你提供选择的文档存储器,那么这篇文章会帮助你,安全妥善地配置一切就绪的生产环境。 ...

samday
2014/04/15
0
0
Windowns、Ubuntu17.10 下安装 MongoDB - [图文并茂]

Windows 下安装 MongoDB MongoDB 安装包下载 点击下载 Windowns 平台: MongoDB 安装包 MongoDB 下载中心 MongoDB 安装 运行安装包,单击Next 选择安装路径 单击Next,完成安装 安装完成后,...

kangvcar
2017/11/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

腾讯投资最高1.75亿美元正式进军菲律宾移动支付市场

菲律宾长途电话公司(PLDT)公司今日宣布,中国互联网巨头腾讯和私募股权公司KKR将获得该公司旗下金融科技公司Voyager Innovations的少数股权。 PLDT在一份声明中称:“腾讯和KKR最多将分别收...

linuxCool
22分钟前
2
0
正则介绍及grep/egrep用法

10月16日任务 9.1 正则介绍_grep上 9.2 grep中 9.3 grep下 扩展 把一个目录下,过滤所有*.php文档中含有eval的行 grep -r --include="*.php" 'eval' /data 正则介绍 正则就是一串有规律的字符...

hhpuppy
33分钟前
1
0
J2Cache 中使用 Lettuce 替代 Jedis 管理 Redis 连接

一直以来 J2Cache 都是使用 Jedis 连接 Redis 服务的。Jedis 是一个很老牌的 Redis 的 Java 开发包,使用很稳定,作者维护很勤勉,社区上能搜到的文章也非常非常多。算是使用范围最广的 Redi...

红薯
今天
12
0
一个可能的NEO链上安全随机数解决方案

0x00 困境 链上安全随机数生成应该算是一个比较蛋疼的问题,哪怕你的系统再牛逼,合约程序困在小小的虚拟机里,哪怕天大的本事也施展不开。 更悲催的是,交易执行的时候,是在每一个节点都执...

暖冰
今天
1
0
【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部