您的位置:首页 > 数据库 > Mongodb

CentOS 编译安装 MongoDB

2014-06-07 11:54 337 查看
1.下载并安装所需要的软件

wget http://downloads.mongodb.org/src/mongodb-src-r2.2.2.tar.gz
yum -y install pcre

yum -y install scons

首先需要安装好 icu4c-4_0-src.tgz   最新版本是1.51.2。 icu4c-52_1-src.tgz和 boost_1_43_0

tar -xvf icu4c-4_0-src.tgz

cd icu/source

./configure --prefix=/usr/local

make

make install

ldconfig

看看之前是否有安装过没有,有的话就先删除以前的 rm -rf /usr/local/include/boost rm -rf /usr/local/lib/libboost*

wget http://sourceforge.net/projects/boost/files/boost/1.43.0/boost_1_43_0.tar.gz/download

tar -xvf boost_1_43_0.tar.gz

cd boost_1_43_0

./bjam -sHVAE_ICU=1

cp ./stage/lib/* /usr/local/lib

cp -a ./boost /usr/local/include

ldconfig

tar -xvf mongodb-src-r2.2.2.tar.gz

cd mongodb-src-r2.2.2

scons all

scons --prefix=/usr/local/mongo install --full install

这个时候算编好了可执行程序和库但这个库还不能用在我们的程序里面 因为c++程序连接数据库时需要c++版客户端v2.2的驱动

wget http://downloads.mongodb.org/cxx-driver/mongodb-linux-x86_64-v2.2-latest.tgz
tar -xvf mongodb-linux-x86_64-v2.2-latest.tgz
cd mong-cxx-driver-v2.2
scons
scons install
ldconfig /usr/local/lib
这个时候看看自己的目录下是不是有一个静态库
但不会生成动态库 有时我们需要用到动态库怎么办,这个时候就修改一下配置文件了
找到SConscript.client并打开 看看有没有 #env.SharedLibrary('mongoclient', clientSource),这句话
去掉注释得新编一次就行了,这时你又会发现你的目录下多了一个.so文件,不过我只到2.2.2的版本上编成功过更高的版本不知道为什么编不出动态库

2 开始使用mongodb了

mkdir -p /usr/local/mongo/etc /usr/local/mongo/data /usr/local/mongo/log/

vim  /usr/local/mongo/etc/mongo.conf
加入下面配置

dbpath = /usr/local/mongo/data

logpath = /usr/local/mongo/mongodb.log

pidfilepath = /usr/local/mongo/mongodb.pid

directoryperdb = true

logappend = true

noauth = true

port = 27017

maxConns = 1024

fork = true

quota = true

quotaFiles = 1024

nssize = 16

#auth=true

启动mongodb

ln -s /usr/local/mongo/bin/mongod /usr/bin/mongod

mongod -f /usr/local/mongo/etc/mongo.conf
看看进程里有没有mongod

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

添加可执行权限

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

这个时候就成功了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb