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()            #优雅停服,防止数据丢失
    
相关推荐
CodeWithMe2 分钟前
[ Vim ] 常用命令 and 配置
linux·编辑器·vim
DC_BLOG6 分钟前
Linux-GlusterFS进阶分布式卷
linux·运维·服务器·分布式
带娃的IT创业者14 分钟前
《Python实战进阶》专栏 No.3:Django 项目结构解析与入门DEMO
数据库·python·django
人间打气筒(Ada)32 分钟前
MySQL优化
数据库·mysql
cookies_s_s40 分钟前
Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)
linux·运维·服务器·数据结构·c++·算法·哈希算法
丁劲犇1 小时前
碳基生物的悲歌-DeepSeek思考实现Linux动态库递归收集工具
linux·递归·deepseek·ldd
小蒜学长1 小时前
医疗报销系统的设计与实现(代码+数据库+LW)
数据库·spring boot·学习·oracle·课程设计
终端行者1 小时前
kubernetes1.28部署mysql5.7主从同步,使用Nfs制作持久卷存储,适用于centos7/9操作系统,
数据库·容器·kubernetes
羊小猪~~1 小时前
MYSQL学习笔记(九):MYSQL表的“增删改查”
数据库·笔记·后端·sql·学习·mysql·考研
zhouwu_linux1 小时前
MT7628基于原厂的SDK包, 修改ra1网卡的MAC方法。
linux·运维·macos