源码安装mongodb

在实际生产环境中,有些公司会将软件都安装到数据盘或者是规定好的目录,就需要运用到自定义安装。 MongoDB的启动方式很多,建议新手以./mongod --config /usr/lcoal/mongodb/conf/mongodb.conf & 这样的方式启动

1.创建mongodb用户组和用户

# groupadd mongodb 
# useradd -r -g mongodb -s /sbin/nologin -M mongodb

2.下载mongodb源码包,并将源码包放到/usr/local/src/目录下

# cd /usr/local/src
# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.0.tgz

3. 解压源码包

# tar xvf mongodb-linux-x86_64-rhel62-3.4.0.tgz
# ls
mongodb-linux-x86_64-3.4.0      mongodb-linux-x86_64-3.4.0.tgz

4. 创建mongodb文件目录

# mkdir -p /usr/local/mongodb/data        //数据库存放目录
# mkdir -p /usr/local/mongodb/conf        //数据库配置文件存放目录
# mkdir -p /var/run/mongodb                //数据库pid存放目录
# mkdir -p /var/log/mongodb                //数据库日志存放目录

5. 将文件复制到mongodb/目录

# cp -R  mongodb-linux-x86_64-3.4.0/*     /usr/local/mongodb

6. 创建mongodb配置文件mongodb.conf

# vim /usr/local/mongodb/conf/mongodb.conf
    #添加配置文件如下
bind_ip=172.16.2.246                          #指定此mongodb的ip,用于外网通信,本地的话可以设置为127.0.0.1,或者注释掉
port = 27017                                  #端口
logpath = /var/log/mongodb/mongodb.log        #日志文件路径
dbpath = /usr/local/mongodb/data              #数据库文件路径
pidfilepath = /var/run/mongodb/mongodb.pid    #pid文件路径
maxConns = 65535          #优化连接数
slowms=200                #记录profile分析的慢查询的时间,默认是100毫秒
fork = true               #以守护进程运行
logappend = true          #日志追加模式,否则,重启mongo,日志会被覆盖
directoryperdb=true       #设置为true,修改数据目录存储模式,MongoDB将数据存储在不同的磁盘设备上,以提高写入吞吐量或磁盘容量
                          #注意:要是在运行一段时间的数据库中,开启该参数,会导致原始的数据都会消失(注释参数则会回来)。

7. 改mongodb目录权限

# chown -R mongodb:mongodb /usr/local/mongodb
# chown -R mongodb:mongodb /var/run/mongodb
# chown -R mongodb:mongodb /var/log/mongodb

8. 将mongodb命令加入环境变量,修改profile文件

# vim /etc/profile
    # 添加到最后面
export PATH=$PATH:/usr/local/mongodb/bin/

# source /etc/profile

9. 将mongodb服务脚本加入到init.d/目录,创建mongod文件

# cd /etc/init.d/    
# touch mongod
# chmod 755 mongod    ##赋权
或者直接将脚本放到/usr/local/mongodb下面
# cd /usr/local/mongodb  
# touch start.sh
# chmod 755 start.sh    ##赋权

# vim /etc/init.d/mongod        ##添加启动脚本

#!/bin/sh
### BEGIN INIT INFO
# Provides: mongod
# Required-Start: $local_fs $syslog
# Required-Stop: $local_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop:     
# Short-Description: mongodb service
### END INIT INFO

MONGOD=/usr/local/mongodb/bin/mongod
CONFIG=/usr/local/mongodb/conf/mongodb.conf

start_mongodb() 
{
    ps -ef | grep -v "grep" | grep "$MONGOD"
    if [ $? -eq 0 ];then
        echo "mongodb is in running!"
        return 0
    fi
        $MONGOD --config $CONFIG &
}

stop_mongodb()
{
    $MONGOD --config $CONFIG --shutdown
    if [ $? -eq 0 ];then
        echo "stop mongodb service successfully!"
    else
        echo "stop mongodb service failed!"
    fi
}

query_status()
{
    ps -ef | grep -v "grep" | grep "$MONGOD"
    if [ $? -eq 0 ];then
        echo "mongodb is in running!"
    else
        echo "mongodb is not in running!"
    fi
}

case "$1" in
    start)
        start_mongodb
        ;;
    stop)
        stop_mongodb
        ;;
    restart)
        stop_mongodb
        start_mongodb
        ;;
    status)
        query_status
        ;;
    *)
        echo "云台温馨提示使用方法: sh start.sh start|stop|restart|status,不涉及kill等强制命令,请放心使用"
      # echo "云台温馨提示使用方法: service mongod start|stop|restart|status,不涉及kill等强制命令,请放心使用"
        ;;
esac

exit 0

10. 将mongodb加入系统服务

如果是将启动脚本放入的init.d目录中,可以加入系统服务。

# chkconfig --add mongod
# chkconfig mongod on
# service mongod start

11. 防火墙端口允许

firewalld规则
# firewall-cmd
 --zone=public --add-port=27017/tcp --permanent  
# firewall-cmd
 --reload

iptables规则
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT  ##普通使用

#首先,所有访问27017 端口的请求都会被拒绝        ##实际可能的用法
# iptables -A INPUT -p tcp --dport 27017 -j DROP
 
#当然,自己不能被挡在外面,给自己开个后门
# iptables -I INPUT -s 127.0.0.1 -p tcp --dport 27017 -j ACCEPT(出于业务逻辑的需要,有时还需要对服务器的公网IP授权)

猜你喜欢

转载自my.oschina.net/zhouyuntai/blog/1826182
今日推荐