mongodb源码安装

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将数据存储在不同的磁盘设备上,以提高写入吞吐量或磁盘容量#注意:要是在运行一段时间的数据库中,开启该参数,会导致原始的数据都会消失(注释参数则会回来)。

 

本人配置文件的写法如下:::

 

bind_ip=192.168.72.141

port=27017

dbpath=/usr/local/mongodb/data/

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

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

fork=true

logappend=true

shardsvr=true

directoryperdb=true

auth=true

replSet=test

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 ];thenecho "mongodb is in running!"return 0

fi$MONGOD --config $CONFIG &

}

stop_mongodb()

{

$MONGOD --config $CONFIG --shutdown

if [ $? -eq 0 ];thenecho "stop mongodb service successfully!"elseecho "stop mongodb service failed!"fi

}

query_status()

{

ps -ef | grep -v "grep" | grep "$MONGOD"if [ $? -eq 0 ];thenecho "mongodb is in running!"elseecho "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授权)

 

 

 

参考网址 https://my.oschina.net/zhouyuntai/blog/1826182

 

 

mongodb集群配置格式;

说明 config = { } 这是有空格的,{ _id:""} 下划线前面是有空格的。

config = { _id:"test",members:[{_id:0,host:"192.168.72.136:27017"},{_id:1,host:"192.168.72.136:27018"},{_id:2,host:"192.168.72.136:27019"}] }

posted @ 2021-02-24 12:14  woaibaobei  阅读(899)  评论(0编辑  收藏  举报