MongoDB 数据库服务搭建(单机)

news/2024/9/29 18:28:40 标签: mongodb, 数据库, 运维, linux

下载地址        下载测试数据

作者:程序那点事儿 日期:2023/02/15 02:16


  1. 进入下载页,选择版本后,右键Download复制连接地址

  2. 下载安装包

    ​
    wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.14.tgz
    
    ​

  3. 解压安装包
    tar -zxvf mongodb-linux-x86_64-rhel70-5.0.14.tgz -C /usr/local/
    mv mongodb-linux-x86_64-rhel70-5.0.14/ mongodb5.0.14/            #重命名一下
  4. 配置环境变量

    a.cd mongodb5.0.14/
    b.pwd                                    #显示安装路径,配置时复制
    c.vim /etc/profile                    #配置PATH

    export PATH=/usr/local/mongodb5.0.14/bin:$PATH

  5. 刷新
    d.source /etc/profile                #刷新

  6. 安装
    1. Linux下我们使用tgz格式的安装包进行安装,没有像windows那样可以使用msi进行简易安装,所以,它这个包是不全的,我们需要进入mongodb目录再手动创建两个目录,data和log,data目录是用于存放数据的,log目录是用于存放日志文件的。

    2. 创建目录
      • mkdir data
      • mkdir logs
    3. 创建配置文件
    • 因为该安装包不包含配置文件,我们需要去bin目录下面写一个mongodb的配置文件

    • cd bin/

    • vi mongodb.conf

      #端口号 默认为27017
      port=27017
      
      #数据库数据存放目录
      dbpath=/usr/local/mongodb5.0.14/data
      
      #数据库日志存放目录
      logpath=/usr/local/mongodb5.0.14/logs/mongodb.log
      
      # pid存储路径
      pidfilepath = /var/run/mongo.pid
      
      #以追加的方式记录日志
      logappend = true
      
      #以后台方式运行进程
      fork=true
      
      #开启用户认证
      #auth=true
      
      #最大同时连接数
      maxConns=100
      
      #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
      bind_ip = 0.0.0.0
      
      #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
      #启用日志文件,默认启用
      journal=true
      
      #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
      quiet=true
  7. 启动服务
    ./mongod -f mongodb.conf

  8. 连接服务
    ./mongo

  9. 停止服务
    因为我们启动服务时没有使用系统服务启动(参考后面一步),停止服务需要使用kill命令
    • ps -ef | grep mongo
    • kill 56552
  10. 使用系统服务启动(可选操作)
    • 在/etc/init.d/路径下创建启动脚本  vim /etc/init.d/mongod
      #!/bin/sh  
      # chkconfig:  
      
      #MogoDB home directory  
      MONGODB_HOME=/usr/local/mongodb5.0.14/
      
      #mongodb command  
      MONGODB_BIN=$MONGODB_HOME/bin/mongod
      
      #mongodb config file
      MONGODB_CONF=$MONGODB_HOME/bin/mongodb.conf
      
      #mongodb PID
      MONGODB_PID=/var/run/mongo.pid
      
      #set open file limit
      SYSTEM_MAXFD=65535
      
      MONGODB_NAME="mongodb"
      . /etc/rc.d/init.d/functions
      
      if [ ! -f $MONGODB_BIN ]
      then
          echo "$MONGODB_NAME startup: $MONGODB_BIN not exists! "  
          exit
      fi
      
      start(){
       ulimit -HSn $SYSTEM_MAXFD
       $MONGODB_BIN --config="$MONGODB_CONF"  --fork ##added 
       ret=$?
       if [ $ret -eq 0 ]; then
          action $"Starting $MONGODB_NAME: " /bin/true
       else
          action $"Starting $MONGODB_NAME: " /bin/false
       fi
      
      }
      
      stop(){
          PID=$(ps aux |grep "$MONGODB_NAME" |grep "$MONGODB_CONF" |grep -v grep |wc -l) 
          if [[ $PID -eq 0  ]];then
          action $"Stopping $MONGODB_NAME: " /bin/false
          exit
          fi
          kill -HUP `cat $MONGODB_PID`
          ret=$?
          if [ $ret -eq 0 ]; then
                  action $"Stopping $MONGODB_NAME: " /bin/true
                  rm -f $MONGODB_PID
          else   
                  action $"Stopping $MONGODB_NAME: " /bin/false
          fi
      
      }
      
      restart() {
      
          stop
          sleep 2
          start
      }
      
      case "$1" in
          start)
                  start
                  ;;
          stop)
                  stop
                  ;;
          status)
          status $prog
                  ;;
          restart)
                  restart
                  ;;
          *)
                  echo $"Usage: $0 {start|stop|status|restart}"
      esac
      

      设置权限  chmod 755 /etc/init.d/mongod

    • 启动MongoDB
      • systemctl start mongod #启动失败是,mongodb.service被屏蔽了
      • 解决启动失败

        sudo systemctl unmask mongodb        #将服务取消屏蔽
        systemctl start mongod                #发现启动成功了!

  11. 关闭防火墙
    systemctl status firewalld         #查看状态
    systemctl stop firewalld           #关闭
    systemctl disable firewalld        #永久关闭

    如果外部要访问,需要开放防火墙端口,我们选择关闭防火墙。

  12. 访问测试
    mongo            #输入mongo命令(或:mongo --host 127.0.0.1:27017)使用本地客户端进行访问
    show dbs            #查看一下数据库

  13. 停止服务
    systemctl stop mongod          #使用系统服务停止服务
    db.shutdownServer()            #优雅停服,防止数据丢失


http://www.niftyadmin.cn/n/5683522.html

相关文章

在springboot项目中实现一个定时任务执行的功能

前言 这篇文章教大家在springboot项目中实现一个定时任务执行的功能,并且该定时任务要具备服务重启后也能执行的能力,本文会详细分析思路,并提供完整实现代码。 思路 定时任务线程我们使用TimerTask实现。实现思路是写一个接口接收客户端传过…

十进制与ip地址转换公式(EXCEL公式)

1、十进制转为ip地址公式 TEXT(INT(C2/16777216),“0”)&“.”&TEXT(INT((C2-INT(C2/16777216)*16777216)/65536),“0”)&“.”&TEXT(INT((C2-INT(C2/16777216)*16777216-INT((C2-INT(C2/16777216)*16777216)/65536)*65536)/256),“0”)&“.”&TEXT(MO…

矩阵分析 学习笔记4 内积与Gram矩阵

内积 定义 自己乘自己肯定大于0 由于对称,第二变元线性那第一变元也线性了。例如这个: 这个内积就是数量积,|A||B|coso的那个,力的做功也是这么算的。 复内积与西空间 共轭啥意思来着?实数相等,虚数相反的…

nvm管理node版本(windows+linux)

1. windows 去github 下载最新的 nvm 找到 nvm-setup.zip 点击下载 安装 2. linux sudo apt install curl curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash echo export NVM_DIR"$HOME/.nvm" >> ~/.bashrc echo [ -s &qu…

微积分入门(真的很入门)

前置知识 前置知识:极限 我们要求 lim ⁡ x → 1 x 2 − 1 x − 1 \lim\limits_{x \to 1}\dfrac{x^2-1}{x-1} x→1lim​x−1x2−1​。 右边我们都知道是什么意思,那左边是什么呢? 意思就是,当 x x x 无限接近 1 1 1 时&…

javascript:冻结对象

1 作用 冻结一个对象,使对象不可扩展。 2 特性 对象的属性不可再被新增、删除对象的属性的值不可再被修改对象的属性的描述符中任意配置项都不可被重新定义 3 代码示例 3.1 冻结对象 Object.freeze() 代码如下: use strict let initialData {a: 1…

华为OD机试 - 对称美学(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

js中防抖 debounce 节流 throttle 原理 从0手动实现

1 防抖 高频触发事件时,执行损耗高的操作,连续触发过程中,只执行最后一次。 高频事件:input scroll resize等。损耗高:网络请求、dom操作。 实现防抖步骤:1.在回调函数中判断timer是否存在,存在…