ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Install MongoDB on Centos 7

2019-03-22 18:55:55  阅读:214  来源: 互联网

标签:Centos MongoDB rc echo etc Install mongodb local transparent


#!/bin/bash
#######################
#mongodb简介
#mongodb是个非关系型数据库,但操作跟关系型数据最类似。mysql是关系型数据库
#mongodb是面向文档存储的非关系型数据库,数据以json的格式进行存储
#mongodb可用来永久存储,也可用来缓存数据
#mongodb提供副本集和分片集群功能,操作简单
#############################
if [ `whoami` != root ]
then
echo "Please login as root to continue :)"
exit 1
fi

if [ ! -d /home/tools/ ];then
mkdir -p /home/tools
else
rm -rf /home/tools && mkdir -p /home/tools
fi

#Prohibit memory giant pages
echo 'never' >/sys/kernel/mm/transparent_hugepage/enabled
echo 'never' >/sys/kernel/mm/transparent_hugepage/defrag

#Add commands to /etc/rc.local
chmod +x /etc/rc.d/rc.local
echo "echo 'never' >/sys/kernel/mm/transparent_hugepage/enabled" >>/etc/rc.local
echo "echo 'never' >/sys/kernel/mm/transparent_hugepage/defrag" >>/etc/rc.local

#Disable firewall and selinux
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 
systemctl disable firewalld.service

#Setting Handles Number and Process
cat >> /etc/security/limits.conf << EOF
*          soft   nofile    204800
*          hard   nofile    204800
*          soft   nproc     204800
*          hard   nproc     204800
EOF

sed -i 's/4096/204800/g' /etc/security/limits.d/20-nproc.conf

#download mongodb on centos 7
cd /home/tools && wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.6.tgz

#install mongodb 
tar zxvf mongodb-linux-x86_64-rhel70-4.0.6.tgz
mv mongodb-linux-x86_64-rhel70-4.0.6 /usr/local/mongodb-linux-x86_64-rhel70-4.0.6
ln -s /usr/local/mongodb-linux-x86_64-rhel70-4.0.6 /usr/local/mongodb

#Create data directory
mkdir -p /data/mongodb/27017/

cat > /data/mongodb/27017/mongodb.conf <<EOF
systemLog:
  destination: file
  logAppend: true
  path: /data/mongodb/27017/mongodb.log
storage:
  dbPath: /data/mongodb/27017/
  journal:
    enabled: true
processManagement:
  fork: true
net:
  port: 27017
  bindIp: 0.0.0.0
EOF

#Add mongodb users and setting permission
useradd mongodb && chown -R mongodb.mongodb /data/mongodb/ /usr/local/mongodb/

#Add autoStart script
cat >/etc/init.d/mongodb <<EOF
#!/bin/bash
# Description:mongodb ORS SERVER
# chkconfig: - 85 15
# Written by jerry
MONGODB_EXEC="/usr/local/mongodb/bin/mongod"
MONGODB_DATA="/data/mongodb/27017/"
MONGODB_CONF="/data/mongodb/27017/mongodb.conf"
PORT=\$(netstat -tunlp|grep 27017|awk '{print \$4}'|cut -d ':' -f2)
MONGODB_USER=mongodb
case \$1 in
        start)
        echo -n "Starting mongodb..."
        if [[ \$PORT = 27017 ]];then
        echo "mongodb is alreday running!"
        else
        /bin/su - \$MONGODB_USER -s /bin/bash -c "\$MONGODB_EXEC -f \$MONGODB_CONF"
        fi
        echo " done"
        ;;
        stop)
        echo -n "Stoping mongodb..."
        /bin/su - \$MONGODB_USER -s /bin/bash -c "\$MONGODB_EXEC --shutdown  --dbpath \$MONGODB_DATA"
        echo " done"
        ;;
        restart)
        \$0 stop
        \$0 start
        ;;
        status)
        if [[ \$PORT != 27017 ]];then
             echo "mongodb is not running!"
        else
             echo "mongodb is running!"
        fi
        ;;
        *)
        echo "Usage: \$0"
        exit 1
esac
EOF

#Setting environment variables
cat >/etc/profile.d/mongodb.sh<<EOF
export MONGODB_HOME=/usr/local/mongodb
export PATH=\$PATH:\$MONGODB_HOME/bin
EOF

source /etc/profile.d/mongodb.sh

#Add permission to /etc/init.d/mongodb
chmod +x /etc/init.d/mongodb

#Add to chkconfig service
chkconfig --add mongodb

#Setting up MongoDB auto-start
chkconfig mongodb on

#Start MongoDB
service mongodb start

标签:Centos,MongoDB,rc,echo,etc,Install,mongodb,local,transparent
来源: https://blog.51cto.com/jinyan2049/2367495

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有