MongoDB学习笔记—Linux下搭建MongoDB环境

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,而后在外面使用浏览器访问发现已经访问不了。

  天天一点点都是进步linux

 
 

    若是文章哪里存在问题,欢迎你们指出来,我会在第一时间修改。web

相关文章
相关标签/搜索