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

下载地址 下载测试数据

作者:程序那点事儿 日期: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()            #优雅停服,防止数据丢失
    
相关推荐
栀夏6131 分钟前
Linux 基础
linux
程序人生5189 分钟前
PostgreSQL分区表
数据库·postgresql·分区表
李高杰9969 分钟前
HAproxy,nginx实现七层负载均衡
运维·服务器·负载均衡
喻师傅10 分钟前
Linux-du命令使用方法
linux·服务器·命令
埋头编程~26 分钟前
【Linux】趣味讲解“权限“的那些事(重点讲解文件权限,内含su、sudo、chmod、chown、umask等指令)
java·linux·运维
和煦的糖果32 分钟前
Linux下的基本指令
linux·运维·服务器
bug菌¹32 分钟前
滚雪球学MySQL[3.1讲]: 高级SQL查询
数据库·sql·mysql
燕雀安知鸿鹄之志哉.35 分钟前
玄机:第二章 日志分析-mysql应急响应
数据库·经验分享·mysql·安全·web安全·网络安全
IPFoxy66638 分钟前
Facebook Marketplace无法使用的原因及解决方案
运维·服务器
Amelio_Ming39 分钟前
linux semaphore信号量操作
linux