阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下搭建MongoDB环境笔记

110次阅读
没有评论

共计 5333 个字符,预计需要花费 14 分钟才能阅读完成。

Linux 下搭建 MongoDB 环境笔记,仅供参考。MongoDB 设置远程服务(建议只在内网或者不可设置,不安全系数太高)

该条下的:vim /etc/sysconfig/iptable
应为:vim /etc/sysconfig/iptables

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/ 

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
Linux 下搭建 MongoDB 环境笔记
  d 解压之后跳转到 mongodb 下进行操作(cd mongodb/),如图所示:
Linux 下搭建 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
Linux 下搭建 MongoDB 环境笔记
    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 打开编辑器之后将如下图所示的内容写入到编辑器中,保证是正确的,如果你的安装地址和我的不一致,则需要自己修改路径,编辑完成之后保存。
Linux 下搭建 MongoDB 环境笔记
  d MongDB 请命令参数说明:http://www.linuxidc.com/Linux/2017-01/139880.htm
  e 使用如下命令重新启动 mongoDB,看是否配置文件起作用,命令如下
    e.1 ./bin/mongod --config /usr/local/kencery/mongoDB/mongodb/bin/mongodb.conf 
Linux 下搭建 MongoDB 环境笔记

  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,如下图所示,则说明启动成功
Linux 下搭建 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 页面,如图所示:则说明配置已经成功。
Linux 下搭建 MongoDB 环境笔记
  f. 因为通过远程服务访问不安全,所以我们正常是不需要配置这步的,但是如果配置了之后,我们可以通过配置文件的属性阻止其外部访问
    f.1 打开 mongodb.config 文件,将 #rest=true 属性注释之后,关闭保存。
    f.2 关闭并且重启 mongoDB,然后在外面使用浏览器访问发现已经访问不了。

MongoDB 权威指南第 2 版 PDF 完整带书签目录 下载见 http://www.linuxidc.com/Linux/2016-12/138253.htm

更多 MongoDB 相关教程见以下内容

CentOS 编译安装 MongoDB 与 mongoDB 的 php 扩展 http://www.linuxidc.com/Linux/2012-02/53833.htm

CentOS 6 使用 yum 安装 MongoDB 及服务器端配置 http://www.linuxidc.com/Linux/2012-08/68196.htm

Ubuntu 13.04 下安装 MongoDB2.4.3 http://www.linuxidc.com/Linux/2013-05/84227.htm

MongoDB 入门必读(概念与实战并重) http://www.linuxidc.com/Linux/2013-07/87105.htm

Ubunu 14.04 下 MongoDB 的安装指南 http://www.linuxidc.com/Linux/2014-08/105364.htm

《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] http://www.linuxidc.com/Linux/2012-07/66735.htm

Nagios 监控 MongoDB 分片集群服务实战 http://www.linuxidc.com/Linux/2014-10/107826.htm

基于 CentOS 6.5 操作系统搭建 MongoDB 服务 http://www.linuxidc.com/Linux/2014-11/108900.htm

MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139881.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计5333字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中