CentOS6.5安装 mongodb 2.6.1

分类:CentOS教程 阅读:19315 次

环境:

  系统硬件:vmware vsphere (CPU:2*4核,内存2G)

  系统版本:Centos-6.5-x86_64

  *** Centos编译安装mongodb 2.6 系统最好是64位的,才能更好发挥mongodb的性能

安装步骤:

  0.系统环境

  [root@centos ~]# cat /etc/redhat-release

  CentOS release 6.5 (Final)

  [root@centos ~]# uname -a

  Linux centos 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

  [root@centos ~]# yum install vim wget -y

  1.下载源文件(二进制编译版)

  [root@centos ~]# mkdir -p /data/src

  [root@centos ~]# cd /data/src

  [root@centos ~]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.1.tgz

  [root@centos ~]# tar -zvxf mongodb-linux-x86_64-2.6.1.tgz

  [root@centos ~]# mv mongodb-linux-x86_64-2.6.1 /opt/mongodb/

  2.配置path环境变量,确保mongodb的bin目录包含在path环境变量中。

  2.1 配置PATH

  [root@centos ~]# vim /etc/profile

  添加下面的内容:

  #set for mongodb
  export MONGODB_HOME=/opt/mongodb
  export PATH=$MONGODB_HOME/bin:$PATH

  保存退出

  2.1查看当前PATH

  [root@centos ~]# echo $PATH

  2.2让环境变量生效:

  [root@centos ~]# source /etc/profile

  [root@centos ~]# echo $PATH

  

  3.验证环境变量是否生效

  [root@centos ~]# mongod -version

  4.建立存储数据及日志的目录:

  4.1建立目录

  [root@centos ~]# mkdir -p /data/mongodb/journal

  [root@centos ~]# mkdir -p /data/mongodb/log

  4.2建立日志文件

  [root@centos ~]# touch /data/mongodb/log/mongodb.log

  4.3建立配置文件

  [root@centos ~]# vim /etc/mongodb.conf

  输入以下内容,保存并退
dbpath=/data/mongodb
logpath=/data/mongodb/log/mongodb.log
logappend=true
port=27017
fork=true
noauth=true
nojournal = true
smallfiles = true
noprealloc = true

  5.增加mongodb用户及设置权限

  5.1增加用户

  [root@centos ~]# useradd mongodb -M -s /sbin/nologin

  5.2设置目录权限

  [root@centos ~]#chown -R mongodb.mongodb /data/mongodb
  

  6.重启,启动服务

  6.1重启
  [root@centos ~]# shutdown -r now

  6.2重启后,运行mongod服务
  [root@centos ~]# mongod -f /etc/mongodb.conf

  7.测试服务是否正常

  7.1打开另一个终端,并以管理员身份进入管理后台

  [root@centos ~]#mongo admin

  >show dbs;

  >db.test.find();

  >exit

  8.将mongod服务加到开机启动服务

  8.1编写服务文件

  [root@centos ~]# vim /etc/init.d/mongod

  输入以下内容,并且保存退出
#!/bin/sh
#
# mongodb init file for starting up the MongoDB server
#
# chkconfig: - 20 80
# description: Starts and stops the MongDB daemon that handles all \
# database requests.

# Source function library.
. /etc/rc.d/init.d/functions

exec="/opt/mongodb/bin/mongod"
prog="mongod"
logfile="/data/mongodb/log/mongodb.log"
options=" -f /etc/mongodb.conf"

[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

lockfile="/var/lock/subsys/mongod"

start() {
[ -x $exec ] || exit 5
echo -n $"Starting $prog: "
daemon --user mongodb "$exec --quiet $options run >> $logfile 2>&1 &"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}

stop() {
echo -n $"Stopping $prog: "
killproc $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}

restart() {
stop
start
}

reload() {
restart
}

force_reload() {
restart
}

rh_status() {
# run checks to determine if the service is running or use generic status
status $prog
}

rh_status_q() {
rh_status >/dev/null 2>&1
}


case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
exit 2
esac
exit $?

  8.2设置为启动服务

  [root@centos ~]# chkconfig --add mongod

  [root@centos ~]# chkconfig --level 345 mongod on

  [root@centos ~]# chmod +x /etc/init.d/mongod

  8.3测试
  [root@centos ~]#service mongod start

  [root@centos ~]#service mongod status

  

  9.重启,并且测试

  [root@centos ~]#shutdown -r now

  [root@centos ~]#service mongod status

  [root@centos ~]#mongo admin

  >show dbs;

  >db.test.find();

  >exit

  **********************************************
  mongodb的参数说明:
   --dbpath 数据库路径(数据文件)
  --logpath 日志文件路径
  --master 指定为主机器
  --slave 指定为从机器
  --source 指定主机器的IP地址
  --pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,

    最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
  --logappend 日志文件末尾添加
  --port 启用端口号
  --fork 在后台运行
  --only 指定只复制哪一个数据库
  --slavedelay 指从复制检测的时间间隔
  --auth 是否需要验证权限登录(用户名和密码)