联奕科技工程体系

 找回密码
 立即注册
查看: 136|回复: 0

Linux系统下Mongodb 安装脚本(附服务自启动)

[复制链接]

2

主题

7

帖子

8212

积分

论坛元老

Rank: 8Rank: 8

积分
8212
发表于 2022-10-14 15:14:15 | 显示全部楼层 |阅读模式
本帖最后由 jakee 于 2022-10-14 15:27 编辑

一、目的
为简化Mongodb快速安装部署,适用于centos6/7.x,龙蜥AnolisOS,并含添加至服务启动项,开机自启动。

二、脚本(mongodb_install.sh)
  1. #!/bin/bash
  2. #version 1.0 @author:jakee  mongodb 安装脚本;mongodb-linux-x86_64-rhel70-4.2.23.tgz 安装方式:tgz
  3. #启动:systemctl start mongodb
  4. #开机自动启:systemctl enable mongodb.service
  5. #指定安装位置INSTALL_DIR需修改为项目地真实地址,MONGODB_REPO_FILE修改为当前部署包名
  6. #
  7. #安装位置
  8. shell_dir=`pwd`
  9. #yum -y install net-snmp
  10. #MONGODB_REPO_URL=https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.23.tgz
  11. MONGODB_REPO_FILE=mongodb-linux-x86_64-rhel70-4.2.23.tgz
  12. #指定安装位置
  13. INSTALL_DIR=/opt/
  14. MONGO_SERVICE=/usr/lib/systemd/system/mongodb.service
  15. #指定用户启动
  16. id -u mongodb
  17. if [ $? != 0 ];then
  18.     useradd -s /sbin/nologin mongodb &> /dev/null

  19. fi

  20. cd $shell_dir

  21. if [ ! -f ${MONGODB_REPO_FILE} ];then
  22.     wget $MONGODB_REPO_URL
  23. fi
  24. mkdir ./mongodb && tar -xzvf $MONGODB_REPO_FILE -C ./mongodb --strip-components 1
  25. mv mongodb $INSTALL_DIR &> /dev/null
  26. cd $INSTALL_DIR
  27. mkdir -p mongodb/{data,log,conf}

  28. #基础配置
  29. #cat <<-EOF > mongodb/conf/mgdb.conf
  30. #storage:
  31. #  dbPath: "$INSTALL_DIR/mongodb/data"
  32. #systemLog:
  33. #  destination: file
  34. #  path: "$INSTALL_DIR/mongodb/log/mongodb.log"
  35. #net:
  36. #  bindIp: 0.0.0.0
  37. #  port: 27017
  38. #processManagement:
  39. #  fork: true
  40. #setParameter:
  41. #  enableLocalhostAuthBypass: false
  42. #EOF

  43. #个人优化配置文件
  44. cat <<-EOF > mongodb/conf/mgdb.conf
  45. storage:
  46.   journal:
  47.     enabled: true
  48.   dbPath: "$INSTALL_DIR/mongodb/data"
  49.   ##是否一个库一个文件夹
  50.   directoryPerDB: true
  51.   engine: wiredTiger
  52.   ##WT 引擎配置
  53.   wiredTiger:
  54.     engineConfig:
  55.       ##WT 最大使用 cache(根据服务器实际情况调节)
  56.       cacheSizeGB: 1
  57.       ##是否将索引也按数据库名单独存储
  58.       directoryForIndexes: true
  59.       #默认 snappy)
  60.       journalCompressor: none
  61.     ##表压缩配置
  62.     collectionConfig:
  63.       ##(默认 snappy,还可选 none、 zlib)
  64.       blockCompressor: zlib
  65.     ##索引配置
  66.     indexConfig:
  67.       prefixCompression: true
  68. systemLog:
  69.   destination: file
  70.   path: "$INSTALL_DIR/mongodb/log/mongodb.log"
  71. net:
  72.   bindIp: 0.0.0.0
  73.   port: 27017
  74. processManagement:
  75.   fork: true
  76. setParameter:
  77.   enableLocalhostAuthBypass: false
  78. EOF


  79. chown -R mongodb:mongodb $INSTALL_DIR/mongodb

  80. #mongodb 环境
  81. echo 'export MONGODB_HOME='$INSTALL_DIR'/mongodb' >> /etc/profile
  82. echo 'export PATH=$PATH:$MONGODB_HOME/bin' >> /etc/profile
  83. source /etc/profile

  84. #服务注册
  85. cat <<-EOF > $MONGO_SERVICE
  86. [Unit]
  87. Description=mongodb
  88. After=network.target remote-fs.target nss-lookup.target
  89. [Service]
  90. User=mongodb
  91. Group=mongodb
  92. Type=forking
  93. RuntimeDirectory=mongodb
  94. PIDFile=$INSTALL_DIR/mongodb/data/mongod.lock
  95. ExecStart=$INSTALL_DIR/mongodb/bin/mongod --config $INSTALL_DIR/mongodb/conf/mgdb.conf
  96. ExecStop=$INSTALL_DIR/mongodb/bin/mongod --shutdown --config $INSTALL_DIR/mongodb/conf/mgdb.conf
  97. PrivateTmp=true
  98. [Install]
  99. WantedBy=multi-user.target
  100. EOF
复制代码
指定安装位置INSTALL_DIR:需修改为项目地真实地址
MONGODB_REPO_FILE:修改为当前部署包名

服务启动:
systemctl start mongodb
开机自动启:
systemctl enable mongodb.service

防火墙开放27017端口:
firewall-cmd --zone=public --add-port=27017/tcp --permanent
更新防火墙规则:
firewall-cmd --reload





中区湖南
欧阳文超
18613965488
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|ly-sky.com

GMT+8, 2025-12-17 22:13 , Processed in 0.110711 second(s), 19 queries .

快速回复 返回顶部 返回列表