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"}] }