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 打开编辑器之后将如下图所示的内容写入到编辑器中,保证是正确的,如果你的安装地址和我的不一致,则需要自己修改路径,编辑完成之后保存。    
  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 打开编辑器后,我们将下面的配置粘贴进去,然后保存
 1         ulimit -SHn 655350
 2         #!/bin/sh
 3         # chkconfig: - 64 36
 4         # description:mongod
 5         case $1 in
 6         start)
 7         /usr/local/kencery/mongoDB/mongodb/bin/mongod  --maxConns 20000  --config /usr/local/kencery/mongoDB/mongodb/bin/mongodb.conf
 8         ;;
 9
10         stop)
11         /usr/local/kencery/mongoDB/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.shutdownServer()"
12         ;;
13
14         status)
15         /usr/local/kencery/mongoDB/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.stats()"
16         ;;
17         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/iptable),输入如下信息在编辑器的最后,最后保存。
    -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,然后在外面使用浏览器访问发现已经访问不了。

  每天一点点都是进步

    如果文章哪里存在问题,欢迎大家指出来,我会在第一时间修改。

转载于:https://www.cnblogs.com/KillBugMe/p/6413955.html

MongoDB学习笔记—Linux下搭建MongoDB环境相关推荐

  1. linux里面搭建php环境,Linux下搭建PHP环境

    该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件外,还要安装一些相关工具,设置必要参数.而且,如果要使用PHP扩展库,还要进行编译 ...

  2. React Native学习笔记一之搭建开发环境

    因为项目需要,今天开始正式学习React Native,先来搭建个开发环境 忐忑的心情 因为项目比较急,而且客户要求使用React Native开发,只能先学点基础然后在项目中使用的时候,边做边学了, ...

  3. linux下搭建hadoop环境步骤分享

    linux下搭建hadoop环境步骤,需要的朋友可以参考下 1.下载hadoop包 wget http://apache.freelamp.com/hadoop/core/stable/hadoop- ...

  4. linux下搭建hexo环境

    最近对搭建个人博客比较感兴趣,但是刚搭建好next主题基本博客,电脑就坏了,借了一台电脑继续搞,不想在他电脑中弄太多环境,所以我准备在自己电脑的服务器上搭建hexo环境 服务器环境: (1)cento ...

  5. linux下搭建go环境--问题记录

    记录自己在linux上搭建go环境的经历.(因为各种版本,linux系统问题挣扎了几天) 安装vmware-tools,把我要运行代码拷进来.这个网上方法很多,我的电脑抽风不能安装,后面重装的虚拟机 ...

  6. 在linux下搭建git环境,在linux下搭建git github开发环境

    在linux下搭建git github开发环境 github git linux 1.安装git sudo apt-getinstall git 2.Generating SSH keys 2.1.g ...

  7. linux下搭建mongodb副本集

    1.搭建三台mongodb服务器 cd /usr/local mkdir mongodb tar -zxvf mongodb-linux-x86_64-2.6.7.tgz cd mongodb-lin ...

  8. 云服务器ecs搭建环境,ECS云服务器linux下搭建开发环境

    买回来的云服务器,当然要装好开发环境 linux下常用的就是LAMP或者LNMP,这里给大家介绍和实际演示LAMP环境的搭建 1.连接ECS服务器 终端输入 ssh root@你的IP地址 回出现ye ...

  9. 嵌入式linux学习笔记--linux下基于imx6ullpro 的 CP2102 /CH340 驱动 以及简单的测试

    今天再次编译了linux 的内核,想起来之前一直没实现的嵌入式linux 的串口驱动,故想实验一下. 本文章会分别介绍CP2102 以及CH340两者的驱动 以及他们的简单的测试,后续可能会更新一个 ...

  10. MongoDB 学习笔记四 C#调用MongoDB

    网址:http://blog.csdn.net/xundh/article/details/49449467 驱动 下载  https://github.com/mongodb/mongo-cshar ...

最新文章

  1. 面试中Spring常见问题
  2. 产品问答 | 3-5年的PM,如何提升竞争力?
  3. 使用Samba服务器构建私有和公共共享目录
  4. 在CentOS7上安装RocketMQ 4.8.0
  5. Android手机编程初学遇到的问题及解决方法
  6. 芬兰称议员的邮件账户遭黑客访问
  7. BERT源码分析(二)
  8. 有哪些比较好的国外知名广告联盟平台?
  9. mysql ndb同步_MySQL NDB Cluster 7.5.16 部署OGG同步
  10. 电子基础知识:测判三极管的口诀
  11. “遛狗不牵绳-违法”--遛狗不牵绳识别检测 助力智慧城市犬类管理
  12. ALV能否实现自动小计
  13. redis单点故障问题
  14. viewers.js 图片查看插件使用说明-vue中引用
  15. 计算机进入低能耗休眠状态,电脑如何设置成不用自动进入休眠状态
  16. python 读取和保存图片方法
  17. 深入探索C++对象模型之C++对象(vs,gcc,clang测试)
  18. 51单片机玩转物联网基础篇05-控制继电器
  19. 无线充电 Qi认证流程详解
  20. 图形查看器丨IrfanView功能简介

热门文章

  1. asp.net Form 认证【转】
  2. 深入理解HTTP协议(转)
  3. 通过路径传值id进行页面判断
  4. 在Windows 7中搭建Wordpress环境
  5. 统计数组中出现次数最多的元素并输出
  6. 卡尔曼滤波和粒子滤波最直白的解释
  7. Arturia Prophet V3 for Mac(多功能仿真音乐合成器)
  8. puppet成长日记四 Exec资源详细介绍及案例分析
  9. 使用命令行修改当前gnome终端的名称技术
  10. 「leetcode」15. 三数之和:双指针法