为接下来的工作热一下手。。
以前看过一本书,了解了,但好像有三四年,又忘了。。:(
参考URL:
http://www.centoscn.com/image-text/install/2014/1124/4171.html
环境:
系统硬件:vmware vsphere (CPU:2*4核,内存2G)
系统版本:Centos-6.5-x86_64
*** Centos编译安装mongodb 2.6 系统最好是64位的,才能更好发挥mongodb的性能
安装步骤:
0.系统环境
[[email protected] ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[[email protected] ~]# 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
[[email protected] ~]# yum install vim wget -y
1.下载源文件(二进制编译版)
[[email protected] ~]# mkdir -p /data/src
[[email protected] ~]# cd /data/src
[[email protected] ~]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.1.tgz
[[email protected] ~]# tar -zvxf mongodb-linux-x86_64-2.6.1.tgz
[[email protected] ~]# mv mongodb-linux-x86_64-2.6.1 /opt/mongodb/
2.配置path环境变量,确保mongodb的bin目录包含在path环境变量中。
2.1 配置PATH
[[email protected] ~]# vim /etc/profile
添加下面的内容:
#set for mongodb
export MONGODB_HOME=/opt/mongodb
export PATH=$MONGODB_HOME/bin:$PATH
保存退出
2.1查看当前PATH
[[email protected] ~]# echo $PATH
2.2让环境变量生效:
[[email protected] ~]# source /etc/profile
[[email protected] ~]# echo $PATH
3.验证环境变量是否生效
[[email protected] ~]# mongod -version
4.建立存储数据及日志的目录:
4.1建立目录
[[email protected] ~]# mkdir -p /data/mongodb/journal
[[email protected] ~]# mkdir -p /data/mongodb/log
4.2建立日志文件
[[email protected] ~]# touch /data/mongodb/log/mongodb.log
4.3建立配置文件
[[email protected] ~]# 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增加用户
[[email protected] ~]# useradd mongodb -M -s /sbin/nologin
5.2设置目录权限
[[email protected] ~]#chown -R mongodb.mongodb /data/mongodb
6.重启,启动服务
6.1重启
[[email protected] ~]# shutdown -r now
6.2重启后,运行mongod服务
[[email protected] ~]# mongod -f /etc/mongodb.conf
7.测试服务是否正常
7.1打开另一个终端,并以管理员身份进入管理后台
[[email protected] ~]#mongo admin
>show dbs;
>db.test.find();
>exit
8.将mongod服务加到开机启动服务
8.1编写服务文件
[[email protected] ~]# vim /etc/init.d/mongod
输入以下内容,并且保存退出(见后面的代码)
8.2设置为启动服务
[[email protected] ~]# chkconfig --add mongod
[[email protected] ~]# chkconfig --level 345 mongod on
[[email protected] ~]# chmod +x /etc/init.d/mongod
8.3测试
[[email protected] ~]#service mongod start
[[email protected] ~]#service mongod status
9.重启,并且测试
[[email protected] ~]#shutdown -r now
[[email protected] ~]#service mongod status
[[email protected] ~]#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 是否需要验证权限登录(用户名和密码)
#!/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 $?