Centos6.5安装配置mongodb

mongodb官网上下载最新版本的mongodb,按照官网上的说明进行安装:

首先运行如下命令:

curl -O http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2.6.3.tgz

其次,运用tar 进行解压缩,按照如下命令

tar -zxvf mongodb-linux-x86_64-2.6.3.tgz

第三,新建mongodb文件夹,把解压了的mongodb-linux-x86_64-2.6.3复制到mongodb下面。

按照如下命令

mkdir -p mongodb
cp -R -n mongodb-linux-x86_64-2.6.3/ mongodb

第四,更改环境变量,在路径 /etc/下面,找到bashrc文件

export PATH=<mongodb-install-directory>:$PATH

替换成你的mongodb路径就可以了

第五,创建mongodb的dbdata的路径

mkdir -p  /usr/local/mongo/data  
mongod --dbpath /usr/local/mongo/data

第六,进入mongo的文件夹,运行mongo命令,启动mongo就可以了。

上面的安装方法比较简单,但是有个问题,就是mongo启动必须同时制定data,也就是要运行mongod --dbpath /usr/local/mongo/data,比较繁琐,下面介绍一种一劳永逸的安装办法,把mongo的启动添加到服务当中。但是必须制定安装的版本,本例以mongodb-src-r1.8.1.tar.gz 具体可以参考博客:http://www.9958.pw/post/centos_mongodb 注:每个版本必须和博客中一致,下面对rin博客的这篇文章做一下转载!

下载所需软件(下载到/usr/local/src目录)

#wget http://downloads.mongodb.org/src/mongodb-src-r1.8.1.tar.gz#wget http://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz#wget http://sourceforge.net/projects/pcre/files/pcre/8.12/pcre-8.12.tar.bz2

安装 python

(注:scons必须是2.0.1的,具体下载地址是http://prdownloads.sourceforge.net/scons/scons-2.0.1.tar.gz):

#yum install -y python-devel
  安装scons: 下载scons(http://www.scons.org/download.php)
tar zxf scons-2.0.1.tar.gz
cd scons-2.0.1
python setup.py install

安装spidermonkey库,

下载支持c的js api库 js-1.7.0.tar.gz(http://ftp.mozilla.org/pub/mozilla.org/js/)

yum install -y boost boost-devel

tar zxvf js-1.7.0.tar.gz
cd js/src/
export CFLAGS="-DJS_C_STRINGS_ARE_UTF8"
make -f Makefile.ref
JS_DIST=/usr gmake -f Makefile.ref export
cd ../.. 

安装pcre

tar zxf pcre-8.12.tar.gz
cd pcre-8.12./configure --enable-utf8 --enable-unicode-properties
make && make install
cd ..

安装MongoDB

tar zxf mongodb-src-r1.8.1.tar.gz
 cd mongodb-src-r1.8.1
scons all   // scons可能出现找不到pcre库的现象(修改/etc/ld.so.conf也无用,是scons自身的问题),这时需要打开mongodb-src-r1.8.0下的SConstruct,查找【 linux2"== os.sys.platform:】,在LIBPATH后面添加上pcrecpp库的安装路径,在LIBS后添加上pcrecpp库名,再重新scons all即可(操作:vim SConstruct;原来:env.Append( LIBPATH=["/usr/lib64" , "/lib64" ] ) ;修改后env.Append( LIBPATH=["/usr/lib64" , "/lib64" ,"/usr/local/pcre/lib"]);  接下来在env.Append( LIBS=["pthread"] )后面添加 env.Append( LIBS=["libpcrecpp"] )  )
scons --prefix=/usr/local/mongo install
如果需要安装lib和head,使用如下方式安装
scons --prefix=/usr/local/mongo --full install

创建配置文件

mkdir -p /usr/local/mongo/etc /usr/local/mongo/data /usr/local/mongo/log/ /usr/local/mongo/repair
vim  /usr/local/mongo/etc/mongo.conf
在mongo.conf中添加下面的内容
dbpath = /usr/local/mongo/data
logpath = /usr/local/mongo/mongodb.log
repairpath = /usr/local/mongo/repair
pidfilepath = /usr/local/mongo/mongodb.pid
directoryperdb = true
logappend = true
noauth = true
port = 27017
maxConns = 1024
fork = true
rest = true
quota = true
quotaFiles = 1024
nssize = 16
启动mongodb

ln -s /usr/local/mongo/bin/mongod /usr/bin/mongod
mongod -f /usr/local/mongo/etc/mongo.conf

看看是不是启动起来了,但是使用这种方式管理mongodb服务器很不明智,我们完善一下:

mkdir -p /usr/local/mongo/srv
vim /usr/local/mongo/srv/mongodb-start

添加下面的内容

#!/bin/sh
mongod -f /usr/local/mongo/etc/mongo.conf
vim /usr/local/mongo/srv/mongodb-stop

添加下面的内容

#!/bin/bash
pid=`ps -o pid,command ax | grep mongod | awk '!/awk/ && !/grep/ {print $1}'`;
if [ "${pid}" != "" ]; then
    kill -2 ${pid};
fi

添加执行权限

chmod a+x /usr/local/mongo/srv/mongodb-start
chmod a+x /usr/local/mongo/srv/mongodb-stop
vim /etc/rc.d/init.d/mongodb

添加下面的内容

#! /bin/sh
#
# mongodb – this script starts and stops the mongodb daemon
#
# chkconfig: - 85 15
# description: MongoDB is a non-relational database storage system.
# processname: mongodb
# config: /usr/local/mongo/etc/mongo.conf
# pidfile: /usr/local/mongo/mongodb.pid
PATH=/usr/local/mongo/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=mongodb
test -x $DAEMON || exit 0
set -e
case "$1" in
  start)
        echo -n "Starting MongoDB... "
        /usr/local/mongo/srv/mongodb-start
        ;;
  stop)
        echo -n "Stopping MongoDB... "
        /usr/local/mongo/srv/mongodb-stop
        ;;
      *)
            N=/etc/init.d/$NAME
            echo "Usage: $N {start|stop}" >&2
            exit 1
            ;;
    esac
    exit 0

添加服务

chmod a+x /etc/rc.d/init.d/mongodb
chkconfig --add mongodb
chkconfig --level 345 mongodb on/etc/rc.d/init.d/mongodb start

本文分享自微信公众号 - Java帮帮(javahelp)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spark【面试】

    首先map task会从本地文件系统读取数据,转换成key-value形式的键值对集合

    奋斗蒙
  • Web-第十四天 基础加强-JDBC案例【悟空教程】

    `pname` varchar(50) DEFAULT NULL, #商品名称

    奋斗蒙
  • 04.HTML区块/布局/表单/框架/颜色/颜色名/颜色值

    04.HTML区块/布局/表单/ 框架/颜色/颜色名/颜色值 HTML <div> 和<span> ---- HTML 可以通过 <div> 和 <span>将...

    奋斗蒙
  • 调用链系列三:解读UAVStack中的调用链技术

    在Java中,HTTP协议的请求/响应模型是由Servlet规范+Servlet容器(如Tomcat)实现的。换句话说,在类Tomcat容器中,一次完整的HTT...

    宜信技术学院
  • 手机联系人删除了怎么恢复?三个快速恢复的方法

      手机联系人删除了怎么恢复?前段时间在联系一些比较熟悉的好友想联系聚一聚,后来发现手机联系人里面的好友全部没有了,想打电话一个都找不到了,可能是之前误操作手机...

    科技第六人
  • 腾讯实验室发现特斯拉Autopilot系统漏洞,马斯克发推称其“工作扎实 "

    特斯拉Model S存在三个缺陷,包括与雨刷相关的视觉识别缺陷和两个辅助驾驶相关的问题。

    镁客网
  • 无心插柳还是有意为之:TCP反射DDoS攻击手法深入分析

    我们对TCP三次握手谙熟于心,但你确定服务器收到SYN包之后一定返回SYN/ACK吗?

    云加社区
  • LeetCode 138 Copy List with Random Pointer

    LeetCode 138. Copy List with Random Pointer

    ShenduCC
  • 更快更准的异常检测?交给分布式的 Isolation Forest 吧

    在异常检测的众多算法中,Isolation Forest 算法有着非常重要的地位。这种从异常点的定义出发构建的检测模型往往在工业界更实用,除了带来令人惊喜的检测...

    卢欣
  • 面试官问我 RabbitMQ 消息如何插队?

    消息中间件在各个大厂都有使用,算是现在面试过程中必问的一个知识点了。昨天,微信群里有一位网友说,面试官问我 RabbitMQ 消息如何插队?求大家科普如何做!

    业余草

扫码关注云+社区

领取腾讯云代金券