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()            #优雅停服,防止数据丢失
    
相关推荐
萨格拉斯救世主14 分钟前
戴尔R930服务器增加 Intel X710-DA2双万兆光口含模块
运维·服务器
Jtti16 分钟前
Windows系统服务器怎么设置远程连接?详细步骤
运维·服务器·windows
TeYiToKu20 分钟前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
dsywws22 分钟前
Linux学习笔记之时间日期和查找和解压缩指令
linux·笔记·学习
yeyuningzi30 分钟前
Debian 12环境里部署nginx步骤记录
linux·运维·服务器
上辈子杀猪这辈子学IT1 小时前
【Zookeeper集群搭建】安装zookeeper、zookeeper集群配置、zookeeper启动与关闭、zookeeper的shell命令操作
linux·hadoop·zookeeper·centos·debian
superman超哥1 小时前
04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索
数据库·oracle·性能优化·dba
用户8007165452001 小时前
HTAP数据库国产化改造技术可行性方案分析
数据库
minihuabei1 小时前
linux centos 安装redis
linux·redis·centos
EasyCVR1 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频