Mongodb

CentOS6 上的MongoDB 二进制免编译安装

MongoDB 是一个高性能分布式文件存储数据库,通常采用官方的二进制包进行安装

MongoDB的源码安装用了很多第三方的东西,比如JS引擎(目前官方推荐的是mozilla的Spider Monkey,以后可能改成google的V8,和node.js一样,呵呵)、正则表达式引擎(pcre)、安装构建工具scons(这东西还要用python来安装)、boost C++库等这里我们使用二进制免编译包,分32位,64位。

准备工作:

下载mongodb数据库

cd /usr/local/src

 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.1.tgz

 

wKioL1adxBWwOprbAAA2hwzsHlw979.jpg

解压mogodb

 Ls

 tar zxf mongodb-linux-x86_64-3.2.1.tgz

 

 wKioL1adwSaz9sn7AAAjnzW-FeQ818.png

增加mongodb用户及权限

wKioL1adwTrS06_RAAATed70RPQ825.png 

创建目录;

 mv mongodb-linux-x86_64-3.2.1  /usr/local/mongodb

 

 

wKioL1adwVaAd2-jAABEkU6KhKY239.png 

建立配置文件

Vim /usr/local/mongodb/conf/mongodb.conf

#bind_ip=0.0.0.0

port=27017

dbpath=/usr/local/mongodb/data

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

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

directoryperdb=true

logappend=true

oplogSize=1000

fork=true

#noprealloc=true

master=true

 

wKioL1adwdqwVy0JAABr7Wobnbk446.png 

 

mongodb配置文件的参数说明

mongodb的参数说明:

--dbpath        数据库路径(数据文件)

--logpath       日志文件路径

--master        指定为主机器

--slave         指定为从机器

--source        指定主机器的IP地址

--pologSize     指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。

--logappend     日志文件末尾添加

--port          启用端口号

--fork          在后台运行

--only          指定只复制哪一个数据库

--slavedelay    指从复制检测的时间间隔

--auth          是否需要验证权限登录(用户名和密码)

 

 

启动服务

 /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf

 wKiom1adwd7xTJujAAAgoU58AGk383.png

测试:

/usr/local/mongodb/bin/mongo admin

 

 wKioL1adwlHycoORAADeL9aeWL4423.png

编写启动脚本:

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="/usr/local/mongodb/bin/mongod"

prog="mongod"

logfile="/usr/local/mongodb/log/mongodb.log"

options=" -f /usr/local/mongodb/conf/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 $?

 

#赋予脚本执行权限

 chmod +x /etc/init.d/mongod

 

#重启服务

 /etc/init.d/mongod restart

Stopping mongod:                                           [  OK  ]

Starting mongod:                                           [  OK  ]

netstat -tunlp |grep mong

tcp        0      0 0.0.0.0:27017               0.0.0.0:*                   LISTEN      1759/mongod  

 

#添加到开机自启动

# chkconfig --add mongod

# chkconfig mongod on

 

 

查看mongodb版本

wKioL1adwnCRLY5_AAApSePZ4Lo115.png 

 

查看服务:

wKioL1adwoXzplHiAAAhjIa8ScQ042.png 

开启端口

wKioL1adwp2ilEnUAAAnCERS7Gs085.png 

 

使用数据库

mongodb使用
1)连接mongodb
mongo --port 27017 //指定port,默认port为27017,本地的mongodb

mongo --host 192.168.0.11  //连接远程的mongodb
mongo -umyuser -p123456  //使用用户名密码登录

wKiom1adwnPCXQHUAABDHn_UoLM042.png 

 

#创建用户      
db.createUser({user:"admin",pwd:"123456",roles:[{role:'dbOwner',db:'userdb'}]})

wKioL1adwr7Ca-vyAAAcCfcE3Kk152.png 

使用创建的用户登录
wKiom1adwpSzfp-rAABHlmsLnvQ030.png